文件未从 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的主要内容,如果未能解决你的问题,请参考以下文章

使用 Gson 将 XML 文件转换为 Json

当我尝试写入文件时,将 JSON 转换为 XML 错误

将此 XML 数据转换为 JSON 格式的最简单方法 [重复]

将多个json文件转换为xml文件

将XML文件中的内容转换为Json对象

使用 ParaView 进行文件转换