在说使用xmltodict之前,我想说我可以获得顶层而不是所有层。例如,当我使用ebay python sdk时
mydict = d['searchResult']['item'][i]
这行代码用于获取项目的详细信息,当我将我的xml转换为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
答案 0 :(得分:0)
使用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文件中提取数据。它适用于您最喜欢的解析器,以提供导航,搜索和修改解析树的惯用方法。它通常可以节省程序员数小时或数天的工作量。