我有一个文本文件,其中有一些值。我的文本文件:
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)
自动将整数解析为int
s。而q.readlines()
没有,并将它们读取为字符串。所以if wt == f['id']
比较一个字符串和一个总是假的整数。试试if int(wt) == f['id']