JSON:迭代嵌套词典列表



我有以下方式从JSON附加到列表上的大量字典列表。我想从每个字典中访问"原始",并将其整个存储在词典或一个巨大的词典列表中。最终目标是访问RAW中的密钥,并使用Pandas将其转换为数据框列。

  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

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

键是通过列表和列表中的每个元素进行迭代,索引字典键'raw'。一种简单的方法是在列表上迭代并访问词典中的"原始"键。

简单的环路方法:

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

列表理解方法

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

最新更新