xml遍历转成字典

2017-11-07  本文已影响0人  王大碗要努力

动态遍历微信异步返回的结果

<xml>
  <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
  <attach><![CDATA[支付测试]]></attach>
  <bank_type><![CDATA[CFT]]></bank_type>
  <fee_type><![CDATA[CNY]]></fee_type>
  <is_subscribe><![CDATA[Y]]></is_subscribe>
  <mch_id><![CDATA[10000100]]></mch_id>
  <nonce_str><![CDATA[5d2b6c2a8db53831f7eda20af46e531c]]></nonce_str>
  <openid><![CDATA[oUpF8uMEb4qRXf22hE3X68TekukE]]></openid>
  <out_trade_no><![CDATA[1409811653]]></out_trade_no>
  <result_code><![CDATA[SUCCESS]]></result_code>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <sign><![CDATA[B552ED6B279343CB493C5DD0D78AB241]]></sign>
  <sub_mch_id><![CDATA[10000100]]></sub_mch_id>
  <time_end><![CDATA[20140903131540]]></time_end>
  <total_fee>1</total_fee>
  <trade_type><![CDATA[JSAPI]]></trade_type>
  <transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id>
</xml> 
#获取微信返回的xml结果,转换格式
 xml = xml.decode('utf-8')
#判断return_code状态
result = xml.find('<return_code><![CDATA[SUCCESS]]></return_code>')
if result>0:
   #获取<xml>节点
   root = ElementTree.fromstring(xml)
   new_params = OrderedDict()
   eitor = root.getchildren()
    for e in eitor:
        new_params[e.tag] = e.text
    return new_params

其他:通联支付的验签,动态重新遍历异步返回的结果(dict类型,动态遍历一遍)

def new_param(param):
    new_params = OrderedDict()
    for k in param:
        new_params[k] = param[k]
    return new_params
上一篇 下一篇

猜你喜欢

热点阅读