【问题标题】:How to read the xml part from json file in python3?如何从python3中的json文件中读取xml部分?
【发布时间】:2021-03-19 11:56:57
【问题描述】:

我有以下带有 xml 文件的 json。我正在寻找一种解决方案来提取 xml 部分并使用 python 'ElementTree' 或任何其他 liberary 遍历 xml 属性..

{
   "Data":{
      "myevent":{
         "payload":"<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>",
         "meta_data":{
            "Env":"l1-7",
            "EventName":"myEventName",
            "Source":"mysource",
            "Hash":"myhash",
            "PayloadKey":"mypayload",
            "ByteSize":300,
            "EventTim":"myTime",
            "Entity":"myEntity",
            "version":"myVersion"
         }
      }
   }
}

现在我想将“有效负载”值提取为 xml,因此我可以使用 python ElementTree 库遍历它以进行进一步转换

如果有人可以帮助解决这个问题?

谢谢

【问题讨论】:

  • 有什么问题?你有没有尝试过任何东西?

标签: json python-3.x xml-parsing


【解决方案1】:

要提取payload(XML),您可以像通常在Python 中为dicts 所做的那样对数据进行索引。这将为您提供一个 Python 字符串。然后,您可以将其传递给fromstring 方法,以便您可以遍历它。

示例:

import xml.etree.ElementTree as ET


data = {
   "Data":{
      "myevent":{
         "payload":"<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>",
         "meta_data":{
            "Env":"l1-7",
            "EventName":"myEventName",
            "Source":"mysource",
            "Hash":"myhash",
            "PayloadKey":"mypayload",
            "ByteSize":300,
            "EventTim":"myTime",
            "Entity":"myEntity",
            "version":"myVersion"
         }
      }
   }
}

tree = ET.fromstring(data['Data']['myevent']['payload'])
for element in tree:
    print(element.text)

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 2011-04-09
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多