[英]How to convert the xml file got using requests library to a dictionary
在说使用xmltodict之前,我想说我可以得到顶层,但不能得到所有层。 例如当我使用ebay python sdk时
mydict = d['searchResult']['item'][i]
当我将xml转换为dict时,这一行代码可获取项目的详细信息。我得到了有序的dict,而我只能深入一层。
d = xmltodict.parse(r.text)
>>> dict(d['FindProductsResponse']['Product'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: dictionary update sequence element #0 has length 8; 2 is required
>>>
当我尝试进入下一个级别时遇到此错误。结果是dict中的dict,我想知道xmltodict无法达到该级别,或者我做错了什么。
import csv
import sys
import requests
payload = {'callname':'FindProducts','responseencoding':'XML','siteid':'EBAY-IN',
'appid':'MyAppID',
'version':'967','QueryKeywords':'harry potter',
'AvailableItemsOnly':'true',
'MaxEntries':'2'}
r = requests.get('http://open.api.ebay.com/shopping', params=payload)
r.text
使用BeautifulSoup ,例如:
import bs4
soup = bs4.BeautifulSoup(r.text, 'lxml')
soup.findproductsresponse.errors
出:
<errors>
<shortmessage>Application ID invalid.</shortmessage>
<longmessage>Application ID invalid.</longmessage>
<errorcode>1.20</errorcode>
<severitycode>Error</severitycode>
<errorclassification>RequestError</errorclassification>
</errors>
Beautiful Soup是一个Python库,用于从HTML和XML文件中提取数据。 它与您最喜欢的解析器一起使用,提供了导航,搜索和修改解析树的惯用方式。 通常可以节省程序员数小时或数天的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.