JSON:迭代嵌套字典列表

时间:2017-04-20 22:57:25

标签: python json list dictionary web-scraping

我有一个巨大的字典列表,从下面的方式附加到JSON列表中。我想从每个字典中访问“raw”并将其整个存储在字典列表或一个庞大的字典中。最终目标是访问raw中的密钥,并使用pandas将它们转换为dataframe列。

  results = [{
  'FirstSentences': None,
  'PrintableUri': '',
  'hasHtmlVersion': False,
  'hasMobileHtmlVersion': False,
  'isRecommendation': False,
  'isTopResult': False,
  'parentResult': None,
  'percentScore': 100.0,
  'printableUriHighlights': [],
  'rankingInfo': None,
  'rating': 3.0,
  'raw': {'distance': 1892760.0,
   'distancekm': 1892.76,
   'distancemi': 1176.11,
   'objecttype': 'Account',
   'objecttypename': 'Account',
   'plocepp': 'False',
   'plochpp': 'False',
   'plocsdp': 'False'}}]

我得到的代码和错误如下:

response = [x['raw'] for x in results]

File "<ipython-input-90-64993f9dcd67>", line 1, in <module>
    response = [x['raw'] for x in results]

TypeError: list indices must be integers, not str

我在这里搜索了很多答案,但找不到我的问题的解决方案。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

关键是遍历列表,对于列表中的每个元素,索引字典键&#39; raw&#39;。 一种简单的方法是遍历列表并访问密钥&#39; raw&#39;在字典里。

简单的for循环方法:

response = []
for d in results:
    response.append(d['raw'])

列表理解方法

response = [d['raw'] for d in results]