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 展开
返回的是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 展开
展开全部
你这贴的代码格式都不调一下,看的好痛苦。。。。。
另:贴一份我早期写的一个解析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赋值一串空字符串
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询