在Python中获取特定的dict

在Python中获取特定的dict,python,json,Python,Json,我有这个JSON文件(它是文件的一小部分): 我想得到这个: { "sentences": [ { "words": [ [ "Antigen", { "PartOfSpeech": "NN", "Charact

我有这个JSON文件(它是文件的一小部分):

我想得到这个:

{
         "sentences": [
            {
               "words": [
                  [
                     "Antigen",
                     {
                        "PartOfSpeech": "NN",
                        "CharacterOffsetEnd": "7",
                        "Lemma": "antigen",
                        "NamedEntityTag": "O",
                        "CharacterOffsetBegin": "0"
                     }
                  ],
                  [
                     "of",
                     {
                        "PartOfSpeech": "IN",
                        "CharacterOffsetEnd": "10",
                        "Lemma": "of",
                        "NamedEntityTag": "O",
                        "CharacterOffsetBegin": "8"
                     }
                  ],
                  [
                     "Bordetella",
                     {
                        "PartOfSpeech": "NN",
                        "CharacterOffsetEnd": "21",
                        "Lemma": "bordetellum",
                        "NamedEntityTag": "PERSON",
                        "CharacterOffsetBegin": "11"
                     }
                  ]
               ],
               "indexeddependencies": [],
               "parsetree": [],
               "text": "Antigen of Bordetella",
               "dependencies": []
            }
         ]
      }
为了获得这一点,我写了以下内容:

    with open(pathOfTheJsonFIle) as f:
        data = json.load(f)
    print(data['Antigen of Bordetella']) 
但我得到了这个错误:列表索引必须是整数,而不是str


这个文件非常大(有超过10000个条目),所以我想使用一些索引(例如,不写数据[2])来查找Bordettella的条目抗原,这是因为JSON文件以列表而不是字典开始

尝试:

使用以下方法可以做到这一点:

from itertools import ifilter
...
searchkey = "Antigen of Bordetella"
search_data = ifilter(lambda X: searchkey in X, data).next()[searchkey]

从JSON文件流入的数据类型是
列表
,而不是您期望的
JSON
。您可以这样使用它:
print(数据[0]['Bordettella抗原])
获取列表的第一个索引json值。
for i in data:
    if 'Antigen of Bordetella' in i:
        print i
from itertools import ifilter
...
searchkey = "Antigen of Bordetella"
search_data = ifilter(lambda X: searchkey in X, data).next()[searchkey]