Переменная Javascript для json в Python

1

У меня строка выглядит как переменная javascript '{name: "John", age: 17}' в Python, как я могу преобразовать ее в JSON, как это { "name": "John", "age": 17 } или как для добавления двойных кавычек к name поля и age. json.loads coudn't не помогите мне, он вернет мне строку не json

  • 0
    Какова разница между JSON и строкой?
Теги:

1 ответ

0
Лучший ответ

Вы уверены, что это правильный json - ключи в вашем примере, name и age не окружены кавычками, что само по себе является недопустимым.

Если это не так, например опечатка в вопросе, метод для использования - это dumps():

import json
py_dict = {"name": "John" , "age": 17}
json_val = json.dumps(py_dict)   # string json representation of the dictionary
json_val2 =json.dumps(json.loads('{"name" : "John" , "age" : 17}'))    # parsing a string as dictionary and then dumping it as a json-formatted string

Как вы можете видеть по второму примеру, loads() принимает строку json и создает из него словарь.


Отвечая на обновленный вопрос: любая попытка проанализировать и исправить источник с заменой строки или регулярным выражением является подверженной ошибкам.

Поскольку yaml является надмножеством json, и ваш пример выглядит как yaml, он может анализировать его:

import yaml, json
val = '{name: "John" , age: 17}'
py_dict = yaml.loads(val)    # it is now a proper python dictionary
print(json.dumps(py_dict))
# prints 
#    {"name": "John" , "age": 17}
  • 0
    Как я могу добавить цитаты к name и age ? Потому что у меня есть единственная строка, такая как '{name : "John" , age : 17}'
  • 0
    Обновил мой ответ, как разобрать необработанное значение

Ещё вопросы

Сообщество Overcoder
Наверх
Меню