【发布时间】:2019-09-16 16:59:43
【问题描述】:
我是 JSON 新手。我正在做一个车牌检测项目。 我有一个表格的数据集:
{"content": "http://com.dataturks.a96-i23.open.s3.amazonaws.com/2c9fafb0646e9cf9016473f1a561002a/77d1f81a-bee6-487c-aff2-0efa31a9925c____bd7f7862-d727-11e7-ad30-e18a56154311.jpg.jpeg","annotation":[{"label":["number_plate"],"notes":"","points":[{"x":0.7220843672456576,"y":0.5879828326180258},{"x":0.8684863523573201,"y":0.6888412017167382}],"imageWidth":806,"imageHeight":466}],"extras":null},
{"content": "http://com.dataturks.a96-i23.open.s3.amazonaws.com/2c9fafb0646e9cf9016473f1a561002a/4eb236a3-6547-4103-b46f-3756d21128a9___06-Sanjay-Dutt.jpg.jpeg","annotation":[{"label":["number_plate"],"notes":"","points":[{"x":0.16194331983805668,"y":0.8507795100222717},{"x":0.582995951417004,"y":1}],"imageWidth":494,"imageHeight":449}],"extras":null},
总共有 240 个数据块。 我想对上述数据集做两件事。 首先,我需要从每个块中下载所有图像,其次,需要将“points”列的值获取到文本文件中。
我在获取列的值时遇到问题。
import json
jsonFile = open('Indian_Number_plates.json', 'r')
x = json.load(jsonFile)
for criteria in x['annotation']:
for key, value in criteria.iteritems():
print(key, 'is:', value)
print('')
我已经编写了上面的代码来获取“注释”下的所有值。 但是,得到以下错误
Traceback (most recent call last):
File "prac.py", line 13, in <module>
x = json.load(jsonFile)
File "C:\python364\Lib\json\__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\python364\Lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\python364\Lib\json\decoder.py", line 342, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 394 (char 393)
请帮助我获取“点”列的值以及从“内容”部分的链接下载图像。
【问题讨论】:
-
Dataturks 提供了将 dataturks 注释转换为 pascal VOC 格式的说明。它将下载相应的图像,并以 xml 文件格式存储注释,可用于训练 tensorflow 反对模型。 dataturks.com/help/ibbx_dataturks_to_pascal_voc_format.php
标签: python json image annotations