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