如何检索与另一个文本文件中的值匹配的字典



我有一个文本文件,其中有一些值。我的文本文件:

297147
339761
357586
94922
207611
572399
575970
304557
218365
286313
29984
11511
323460
516916
21711
313386
402639
457584
488377
301753
183319
397063
497660
235784
319073

我有另一个包含字典的.json文件。我的json文件

{
"license":4,
"file_name":"COCO_val2014_000000522418.jpg",
"coco_url":"http://images.cocodataset.org/val2014/COCO_val2014_000000522418.jpg",
"height":480,
"width":640,
"date_captured":"2013-11-14 11:38:44",
"flickr_url":"http://farm1.staticflickr.com/1/127244861_ab0c0381e7_z.jpg",
"id":522418
},
{
"license":3,
"file_name":"COCO_val2014_000000184613.jpg",
"coco_url":"http://images.cocodataset.org/val2014/COCO_val2014_000000184613.jpg",
"height":336,
"width":500,
"date_captured":"2013-11-14 12:36:29",
"flickr_url":"http://farm3.staticflickr.com/2169/2118578392_1193aa04a0_z.jpg",
"id":184613
},

我想在json中检索这些字典id为的文件与text中的值匹配文件

I tried a code

#to retrive the json file key **"id"**
import json

with open("file.json") as f:
data_retreived= json.load(f) 
a=data_retreived["images"]
for d in a:
print(d['id']) 

#to retrieve the text_file values
q = open("/content/drive/MyDrive/coco/data.txt", "r")
li=q.readlines()
print(li)

现在我正在尝试像这样检索匹配的值

res=[]
for wt in li:
for f in a:
if wt == f['id']:
res.append(f)
print(res)

但是它给了我输出:

没有

json.load(f)自动将整数解析为ints。而q.readlines()没有,并将它们读取为字符串。所以if wt == f['id']比较一个字符串和一个总是假的整数。试试if int(wt) == f['id']

相关内容

  • 没有找到相关文章

最新更新