My.json содержит:
{"something": [{"a": "b", "c": "", "d": ""}]}
AppendJson - это строка с чистым Json:
{"a": "b", "b": "", "a": ""}
Нежелательный результат:
{"something": [{"a": "b", "a": "", "b": ""}, {"a": "b", "b": "", "a": ""}, "{\\"a\\": \\"1\\", \\"a\\": \\"a\\", \\"b\\": \\"\\"}"]}
При этом должно быть:
{"something": [{"a": "b", "a": "", "b": ""}, {"a": "b", "b": "", "a": ""}, {"a": "1", "a": "a", "b": ""}]}
Используя json.dump
, который запускается только один раз во всем скрипте, следующий код (appendjson передается в качестве параметра в виде строки с чистым json):
with open('my.json', 'r') as file:
data = file.read()
myjson = json.loads(data)
myjson['something'].append(appendJson)
with open('my.json', 'w') as outfile:
json.dump(myjson, outfile)
Выводит с большим количеством escape-символов и ""
. Как избежать ненужных кавычек, связанных с json.dump
, или как сохранить это в файл без ошибок "cannot save dict into file
"?
Цель состоит в том, чтобы внутри файла был чистый json, без каких-либо \\ "" над элементами моего списка, как вы видите ниже. Итак, как этого избежать в моем случае ?: {"something": [{"a": "b", "a": "", "b": ""}, {"a": "b", " b ":" "," a ":" "}," {\ "a \": \ "1 \", \ "a \": \ "a \", \ "b \": \ "\" } "]}
2 ответа
Я решил свою проблему с newjson=[x.strip() for x in newjson]
сразу после прочтения файла.
Что такое appendJson
? Если это уже JSON, то повторный вызов json.dump
для него вызовет дополнительные кавычки и escape-символы, которые вы упомянули. Убедитесь, что вы сериализуете данные только один раз.
>>> python_dict = {"a": "A","b":"B"}
>>> json_string = json.dumps(python_dict)
>>> json_string
'{"a": "A", "b": "B"}'
>>> double_json = json.dumps(json_string)
>>> double_json
'"{\\"a\\": \\"A\\", \\"b\\": \\"B\\"}"'
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.