如何在Python中将xml转换为json时删除@前缀

Sum*_*mit 1 python python-3.x xmltodict xml-to-json

我正在尝试使用库在 python 中将 xml 转换为 json xmltodict。虽然 xml 正在转换为 json,但在 dict 中的每个键之前,都会添加“@”前缀。以下是代码片段和示例输出:

import xmltodict
import json

with open('response.xml','r') as res_file:
    doc = xmltodict.parse(res_file.read())

xml_json_str = json.dumps(doc)
final_json = json.loads(xml_json_str)
Run Code Online (Sandbox Code Playgroud)

输出:

"CustomerInfo": {
  "@address": "Bangalore, Karnataka 560034",
  "@email": "abc@gmail.com",
  "@name": "Sam",
}
Run Code Online (Sandbox Code Playgroud)

如何一次性从所有密钥中删除@?

Sum*_*mit 5

最后我找到了一个像魅力一样有效的解决方案。解析 xml 时,设置attr_prefix=''为从键中删除所有 @。

以下更改对我有用:

with open('response.xml','r') as res_file:
    doc = xmltodict.parse(res_file.read(), attr_prefix='')
Run Code Online (Sandbox Code Playgroud)