文件未从 xml 正确转换为 JSON
Posted
技术标签:
【中文标题】文件未从 xml 正确转换为 JSON【英文标题】:File not converting to JSON properly from xml 【发布时间】:2020-09-21 16:14:17 【问题描述】:我正在使用 Python 将数据从 xml 文件转换为 json 并将其放入文件中。我正在使用 xmltodict 使用“解析”转换为字典,然后使用“转储”转换为 json。下面是代码:-
import xmltodict
import json
with open('note.xml') as xml_file:
my_dict=xmltodict.parse(xml_file.read())
xml_file.close()
json_data=json.dumps(my_dict)
with open('note.json', 'w') as f:
json.dump(json_data, f)
Here is a sample xml file that I have used。但是,在输出中,我得到的东西不像 json 那样,带有反斜杠。看起来像胡言乱语:-
"\"note\": \"to\": \"Tove\", \"from\": \"Jani\", \"heading\": \"Reminder\", \"body\": \"Don't forget me this weekend!\""
我试图了解为什么我无法以正确的 json 格式获取数据。我的代码有什么问题吗?请注意,我不是一个非常熟练的程序员,只是偶尔使用 Python。
【问题讨论】:
这不是胡言乱语。这是正确的json。内部双引号被反斜杠作为它在双引号包围的字符串中。 在字符串上做一个 json.loads 并打印 json,你应该可以看到它的 json 格式 写的 JSON 看起来不错,但是你正在做双重转换。首先,您使用“json.dumps”创建字符串,然后使用“json.dump”编写该字符串。直接用 'json.dump(my_dict, f)' 写就行 【参考方案1】:你需要在json_data=json.dumps(my_dict)
之后添加下面的代码来将字符串转换为json对象
json_data = json.loads(json_data)
【讨论】:
以上是关于文件未从 xml 正确转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章