如何从json文件中获取标签并将其附加到图像

时间:2019-03-30 09:56:42

标签: json tensorflow deep-learning dataset

我无法访问json文件中的坐标数据。我需要使用json文件中的x和y坐标标记图像。我的目标是训练cnn从图像中识别这些关键点。文件结构:

{
    "Labeled Data": "url",
    "Label": {
      "radius inclination angle": [
        {
          "geometry": {
            "x": 193,
            "y": 222
          }
        },
        {
          "geometry": {
            "x": 242,
            "y": 228
          }
        }
      ],
      "radioulnar ": [
        {
          "geometry": {
            "x": 244,
            "y": 227
          }
        },
        {
          "geometry": {
            "x": 250,
            "y": 225
          }
        }
      ],
      "scapholunar": [
        {
          "geometry": {
            "x": 224,
            "y": 217
          }
        },
        {
          "geometry": {
            "x": 219,
            "y": 217
          }
        }
      ]
    }
  },

我试图这样访问“ x”和“ y”:

for item in data:
    for label in item['Label']['radiuksen inklinaatio']:
        for cordinates in label['geometry']:
            print(cordinates)

上面的代码仅打印x和y,但不打印它们的值。如果我可以获取这些值,那么我将仅使用坐标来创建新标签。 结果应如下所示:

[
    {'label': '"x":219, "y"=217...', 'image': 'http://example.com/c1.jpg'},

    ...
]

我做错了

1 个答案:

答案 0 :(得分:0)

您可以使用json模块。

import json
with open('file.json', 'r') as file:
    data = json.load(file)

如果您需要打开文件。 data是列表和字典的嵌套组合,具体取决于特定文件。您可以访问其内容,例如标准列表/字典。例如:

data['Label']['radius inclination angle'].append('smth') #use append if particular nested structutre is a list 
data['Label']['radius inclination angle'][0]['smth'] = '123'
print(data['Label']['radius inclination angle'])

这将输出

[{'geometry': {'x': 193, 'y': 222}, 'smth': '123'}, {'geometry': {'x': 242, 'y': 228}}, 'smth']

目前尚不清楚您要从提供的示例中获得什么确切输出。但是我希望这足够了。你可以在这里阅读更多 https://docs.python.org/3/library/json.html