Python get返回xml解析问题 5

一个翻译的webservice支持httpget方法返回的是xml格式使用ElementTree解析返回的xml字符串时,如果xml中存在中文,那么root=Elemen... 一个翻译的webservice支持http get方法
返回的是xml格式
使用ElementTree解析返回的xml字符串时,如果xml中存在中文,那么root = ElementTree.fromstring(xml)是会报编码错误。
如果没有中文root.getiterator('DataSet')时返回的是空
__author__ = 'USER'#encoding:UTF-8import requestsfrom xml.etree import ElementTreeurl = 'http://fy.webxml.com.cn/webservices/EnglishChinese.asmx/Translator'payload = {'WordKey':'hello'} #hello为空时ElementTree.fromstring(xml)成功但是seq列表为空,如果 WordKey键存有值那么返回时肯定会有汉字那么就会报编码错误~! 哪位大侠能帮帮忙感激不尽req = requests.get(url,params=payload)xml = req.textprint xmlroot = ElementTree.fromstring(xml)seq = root.getiterator('DataSet')print seq
展开
 我来答
neosicifore
2014-12-18 · TA获得超过2258个赞
知道小有建树答主
回答量:446
采纳率:66%
帮助的人:498万
展开全部

你这贴的代码格式都不调一下,看的好痛苦。。。。。

另:贴一份我早期写的一个解析xml转换为字典的代码,支持中文

细微部分,你自己调

import xml.etree.ElementTree as ET
import os
'''
将指定目录下的xml文件转换为字典 dict
strXmlFileName : xml 文件name
strElementPath : xml 节点
dictSubElement : dict 用于返回
eg.   my_dict = xml2dict('xxx.xml', 'node', my_dict)
'''
def xml2dict(strXmlFileName, strElementPath, dictSubElement):   
    elementList = []
    dictSubElement.clear()
    try:
        eTree=ET.parse(os.getcwd() + strXmlFileName)
    except Exception,errorinfo:
        print "xml2dict: ET.parse(%s) generate exception, errorinfo:%s" % ((os.getcwd() + strXmlFileName), errorinfo)
        raise errorinfo
    
    try:        
        elementList=eTree.findall(strElementPath)           
    except Exception,errorinfo:
        print "xml2dict: eTree.findall(%s) generate exception, errorinfo:%s" % (strElementPath, errorinfo)
        raise errorinfo
    
    pathList = []
    for element in elementList:
        for subelement in element.getchildren():
#                print "tag:%s, text:%s" % (subelement.tag, subelement.text.encode("utf-8"))           
            if subelement.text is not None:
                if subelement.tag in pathList:                        
                    dictSubElement[subelement.tag] = (os.getcwd() + subelement.text).encode('utf-8')
                else :
                    dictSubElement[subelement.tag] = subelement.text.encode('utf-8')
            else:
                dictSubElement[subelement.tag] = "" #将None赋值一串空字符串
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式