python提取xml格式的出参并转成dict

python提取xml格式的出参并转成dict

在这里插入图片描述

# python提取xml格式的出参并转成dict
xml_data = """<S:Envelopees xmlnss:S="XXXXXXXXXXXXXXX">
   <S:Body>
      <ns2:QueryResponse xmlnss:ns2="http://XXXXXXXXX">
         <QueryData>
            <dataByXML><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<ValueInfo>
	<Row>
		<Data remark="民组" >QFJGMZWZ</Data>
		<Data remark="划汉字" >HJD_XZQHMC</Data>
		<Data remark="地详址" >HJDXZ</Data>
		<Data remark="所名称" >HJ_GAJGMC</Data>
		<Data remark="地区划" >JZD_XZQHDM</Data>
		<Data remark="居住地详址" >JZDXZ</Data>
		<Data remark="与关系" >YHZGX</Data>
		<Data remark="迁来原因" >QLBSYY</Data>
		<Data remark="迁来详址" >QLBS_MLXXDZ</Data>
		<Data remark="迁来日期" >QLBZ_RQ</Data>
		<Data remark="迁来原因" >QLBZYY</Data>
		<Data remark="迁来本址" >QLBZ_GAJGJGDM</Data>
		<Data remark="迁来本址街路项" >QLBZ_JLXDM</Data>
		<Data remark="婚姻状况" >HYZK</Data>
		<Data remark="身高" >SG</Data>
		<Data remark="文化程度" >WHCD</Data>
		<Data remark="职业" >ZY</Data>
		<Data remark="工作单位" >GZ_DWMC</Data>
		<Data remark="存储时间戳字段" >SCHJCKSJ</Data>
	</Row>
	<Row>
		<Data><![CDATA[汉]]]]>><![CDATA[</Data>
		<Data><![CDATA[河南省XXX]]]]>><![CDATA[</Data>
		<Data><![CDATA[河南省XXXXXX村0078号]]]]>><![CDATA[</Data>
		<Data><![CDATA[九XXX所]]]]>><![CDATA[</Data>
		<Data><![CDATA[410101]]]]>><![CDATA[</Data>
		<Data><![CDATA[]]]]>><![CDATA[</Data>
		<Data><![CDATA[]]]]>><![CDATA[</Data>
		<Data><![CDATA[务工]]]]>><![CDATA[</Data>
		<Data><![CDATA[]]]]>><![CDATA[</Data>
		<Data><![CDATA[2015-05-19 00:00:00]]]]>><![CDATA[</Data>
		<Data><![CDATA[]]]]>><![CDATA[</Data>
		<Data><![CDATA[41XXXXX30000]]]]>><![CDATA[</Data>
		<Data><![CDATA[XX房屋]]]]>><![CDATA[</Data>
		<Data><![CDATA[未知]]]]>><![CDATA[</Data>
		<Data><![CDATA[]]]]>><![CDATA[</Data>
		<Data><![CDATA[XX毕业]]]]>><![CDATA[</Data>
		<Data><![CDATA[]]]]>><![CDATA[</Data>
		<Data><![CDATA[XXXX会所]]]]>><![CDATA[</Data>
		<Data><![CDATA[2015-05-19 00:00:00]]]]>><![CDATA[</Data>
	</Row>
</ValueInfo>]]></dataByXML>
            <procMessage>查询成功,查询的记录数为: 1 条!</procMessage>
            <queryResult>true</queryResult>
         </QueryData>
      </ns2:QueryResponse>
   </S:Body>
</S:Envelopees>
"""
import xmltodict

dict_data = dict(xmltodict.parse(xml_data, encoding='utf-8'))
print("dict_data",dict_data)
dict_data1 = dict(dict_data['S:Envelopees']['S:Body']['ns2:QueryResponse']['QueryData'])
dict_data2 = dict(xmltodict.parse(dict_data1['dataByXML'], encoding='utf-8'))
dict_data3 = dict(dict_data2['ValueInfo'])
dict_data4 = dict(dict_data3['Row'][0])

# 提取value
dict_data5 = dict(dict_data3['Row'][1])['Data']
# print(dict_data5)
print("***********************")

# 提取key
dict_data6 = []
for i in dict_data4["Data"]:
    dict_data6.append(dict(i)['@remark'])
# 使用zip函数组成字典形式
res_data = dict(zip(dict_data6,dict_data5))
print(res_data)
结果:
dict_data {'S:Envelopees': {'@xmlnss:S': 'XXXXXXXXXXXXXXX', 'S:Body': {'ns2:QueryResponse': {'@xmlnss:ns2': 'http://XXXXXXXXX', 'QueryData': {'dataByXML': '<?xml version="1.0" encoding="UTF-8"?>\n<ValueInfo>\n\t<Row>\n\t\t<Data remark="民组" >QFJGMZWZ</Data>\n\t\t<Data remark="划汉字" >HJD_XZQHMC</Data>\n\t\t<Data remark="地详址" >HJDXZ</Data>\n\t\t<Data remark="所名称" >HJ_GAJGMC</Data>\n\t\t<Data remark="地区划" >JZD_XZQHDM</Data>\n\t\t<Data remark="居住地详址" >JZDXZ</Data>\n\t\t<Data remark="与关系" >YHZGX</Data>\n\t\t<Data remark="迁来原因" >QLBSYY</Data>\n\t\t<Data remark="迁来详址" >QLBS_MLXXDZ</Data>\n\t\t<Data remark="迁来日期" >QLBZ_RQ</Data>\n\t\t<Data remark="迁来原因" >QLBZYY</Data>\n\t\t<Data remark="迁来本址" >QLBZ_GAJGJGDM</Data>\n\t\t<Data remark="迁来本址街路项" >QLBZ_JLXDM</Data>\n\t\t<Data remark="婚姻状况" >HYZK</Data>\n\t\t<Data remark="身高" >SG</Data>\n\t\t<Data remark="文化程度" >WHCD</Data>\n\t\t<Data remark="职业" >ZY</Data>\n\t\t<Data remark="工作单位" >GZ_DWMC</Data>\n\t\t<Data remark="存储时间戳字段" >SCHJCKSJ</Data>\n\t</Row>\n\t<Row>\n\t\t<Data><![CDATA[汉]]></Data>\n\t\t<Data><![CDATA[河南省XXX]]></Data>\n\t\t<Data><![CDATA[河南省XXXXXX村0078号]]></Data>\n\t\t<Data><![CDATA[九XXX所]]></Data>\n\t\t<Data><![CDATA[410101]]></Data>\n\t\t<Data><![CDATA[]]></Data>\n\t\t<Data><![CDATA[]]></Data>\n\t\t<Data><![CDATA[务工]]></Data>\n\t\t<Data><![CDATA[]]></Data>\n\t\t<Data><![CDATA[2015-05-19 00:00:00]]></Data>\n\t\t<Data><![CDATA[]]></Data>\n\t\t<Data><![CDATA[41XXXXX30000]]></Data>\n\t\t<Data><![CDATA[XX房屋]]></Data>\n\t\t<Data><![CDATA[未知]]></Data>\n\t\t<Data><![CDATA[]]></Data>\n\t\t<Data><![CDATA[XX毕业]]></Data>\n\t\t<Data><![CDATA[]]></Data>\n\t\t<Data><![CDATA[XXXX会所]]></Data>\n\t\t<Data><![CDATA[2015-05-19 00:00:00]]></Data>\n\t</Row>\n</ValueInfo>', 'procMessage': '查询成功,查询的记录数为: 1 条!', 'queryResult': 'true'}}}}}
***********************
{'民组': '汉', '划汉字': '河南省XXX', '地详址': '河南省XXXXXX村0078号', '所名称': '九XXX所', '地区划': '410101', '居住地详址': None, '与关系': None, '迁来原因': None, '迁来详址': None, '迁来日期': '2015-05-19 00:00:00', '迁来本址': '41XXXXX30000', '迁来本址街路项': 'XX房屋', '婚姻状况': '未知', '身高': None, '文化程度': 'XX毕业', '职业': None, '工作单位': 'XXXX会所', '存储时间戳字段': '2015-05-19 00:00:00'}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值