在下面的多維 JSON 中,我提取了“寬度”和“高度”值,因為我想附加到一個空表/陣列上并稍后使用它們進行計算。在以下 JSON 上。
[
{
"frame_id":1,
"filename":"bake/IMG_20210930_090024.jpg",
"objects": [
{"class_id":0, "name":"brick", "relative_coordinates":{"left_x":1279, "top_y": 991, "width": 922, "height":1164},"relevant":true}
]
},
{
"frame_id":2,
"filename":"bake/IMG_20210930_090017.jpg",
"objects": [
{"class_id":1, "name":"limestone", "relative_coordinates":{"left_x":1672, "top_y":1536, "width": 651, "height": 623},"relevant":true}
]
}
]
我的代碼和結果:
with open('/home/pan/output/result.json') as json_data:
data = json.load(json_data)
for item in data:
for row in item.get('objects', []):
print(row['class_id'], row['relative_coordinates']['width'],row['relative_coordinates']['height'])
0 922 1164
1 651 623
我的主要問題是我只想顯示“class_id”的結果:0 的寬度和高度。另外,通過控制臺或空陣列 [] 附加這些值并稍后進行計算的最佳方法是什么?
uj5u.com熱心網友回復:
你可以試試這個:
value_list = []
with open('result.json') as json_data:
data = json.load(json_data)
for item in data:
for row in item.get('objects', []):
if row['class_id'] == 0:
print(row['class_id'], row['relative_coordinates']['width'], row['relative_coordinates']['height'])
value_list.append(row['relative_coordinates']['width'])
value_list.append(row['relative_coordinates']['height'])
print(value_list)
輸出:
0 922 1164
[922, 1164]
uj5u.com熱心網友回復:
您可以通過搜索字典并一一列出來獲取資料。
width = -1
height = -1
for item in data:
if item['objects'][0]['class_id'] == 0:
width = item['objects'][0]['relative_coordinates']['width']
height ?= item['objects'][0]['relative_coordinates']['height']
break
uj5u.com熱心網友回復:
只需if在您的代碼中添加一個條件就會得到如下預期的結果:
data = None
with open('/home/pan/output/result.json') as json_data:
data = json.load(json_data)
co_ordinates = []
for item in data:
for row in item.get('objects', []):
if row['class_id'] == 0:
co_ordinates.append(row['relative_coordinates']['width'])
co_ordinates.append(row['relative_coordinates']['height'])
break
print (co_ordinates)
輸出:
[922, 1164]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314415.html
