2017-01-11 5 views
0

Прежде чем говорить об использовании xmltodict, я хочу сказать, что могу получить верхний слой, но не весь слой. например, когда я использовал EBay питона SDK я использовалКак преобразовать xml-файл, полученный с помощью библиотеки запросов в словарь

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 
>>> 

Я получаю эту ошибку, когда я пытаюсь идти следующие результаты level.The являются ДИКТ с в Словаре и мне интересно, может быть 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

использование 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 файлов. Он работает с вашим любимым парсером, чтобы обеспечить идиоматические способы навигации, поиска и изменения дерева синтаксического анализа. Обычно это экономит время или время работы программистов.