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

How to retrieve dictionary that matches the value in another text file

我有一个包含一些值的文本文件。 我的文本文件:

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”s文本文件

我试了一个密码

#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)

但它给了我输出:

None

json.load(f) 自动将整数解析为 ints。而 q.readlines() 不会并将它们读取为字符串。所以 if wt == f['id'] 将一个字符串与一个始终为假的整数进行比较。试试 if int(wt) == f['id'].