如何在python中获取json行中的特定子对象

smdnsysy  于 2023-02-06  发布在  Python
关注(0)|答案(1)|浏览(106)

我有一个JSON行,我一直在尝试检索该行的两个“height”对象,但一直未能成功。
下面是我的代码和我已经尝试:

dictonary = {'predictions': [{'x': 895.0, 'y': 1695.0, 'width': 1046.0, 'height': 1860.0, 'confidence': 0.9421133995056152, 'class': 'Potato', 'points': [{'x': 924.6015625, 'y': 2623.1372104673196}, {'x': 769.7421875, 'y': 2624.4923239162126}, {'x': 719.640625, 'y': 2614.0989617824443}, {'x': 623.9921875, 'y': 2559.17901274988}, {'x': 550.663834749923, 'y': 2481.6796875}, {'x': 496.3996585650308, 'y': 2395.140625}, {'x': 459.90986307738143, 'y': 2299.4921875}, {'x': 400.6397144303104, 'y': 2058.09375}, {'x': 378.0168381250084, 'y': 1880.4609375}, {'x': 377.99781038883225, 'y': 1702.828125}, {'x': 382.5907827376746, 'y': 1648.171875}, {'x': 399.5838603248672, 'y': 1575.296875}, {'x': 400.78761685201823, 'y': 1520.640625}, {'x': 417.8338516784328, 'y': 1470.5390625}, {'x': 418.98823283671425, 'y': 1420.4375}, {'x': 436.0082268099264, 'y': 1374.890625}, {'x': 437.167758266602, 'y': 1338.453125}, {'x': 454.28473747609706, 'y': 1292.90625}, {'x': 459.93999704686405, 'y': 1238.25}, {'x': 490.7490388888151, 'y': 1156.265625}, {'x': 491.8288016316368, 'y': 1133.4921875}, {'x': 508.8924306355354, 'y': 1106.1640625}, {'x': 527.9234807009638, 'y': 1046.953125}, {'x': 587.5365064396046, 'y': 946.7500000000001}, {'x': 701.421875, 'y': 837.3606423937706}, {'x': 769.7421875, 'y': 800.9531828008493}, {'x': 888.1640625, 'y': 782.7755220311303}, {'x': 1015.6953125, 'y': 787.2919818609915}, {'x': 1065.796875, 'y': 799.7093941263506}, {'x': 1111.34375, 'y': 800.7217819718936}, {'x': 1184.21875, 'y': 841.8955697617723}, {'x': 1253.0610901088744, 'y': 919.4218750000001}, {'x': 1271.270475224854, 'y': 951.3046875000001}, {'x': 1307.5979330272176, 'y': 1042.3984375}, {'x': 1308.4761630837356, 'y': 1074.28125}, {'x': 1325.4859189683493, 'y': 1110.71875}, {'x': 1326.6604271523647, 'y': 1156.265625}, {'x': 1343.6799094344485, 'y': 1206.3671875}, {'x': 1344.918760905306, 'y': 1302.015625}, {'x': 1361.9423092536952, 'y': 1415.8828125}, {'x': 1363.1149293109788, 'y': 1511.53125}, {'x': 1380.1437317333514, 'y': 1593.515625}, {'x': 1381.3134576724651, 'y': 1670.9453125}, {'x': 1398.360433947605, 'y': 1721.046875}, {'x': 1399.5143973675058, 'y': 1775.703125}, {'x': 1417.1507343999447, 'y': 1848.578125}, {'x': 1416.7072734730875, 'y': 2094.53125}, {'x': 1380.4241536814905, 'y': 2208.3984375}, {'x': 1289.0801683606567, 'y': 2372.3671875}, {'x': 1134.1171875, 'y': 2527.270247909732}, {'x': 1043.0234375, 'y': 2568.9770454914824}, {'x': 1029.359375, 'y': 2581.930440392619}, {'x': 924.6015625, 'y': 2623.1372104673196}], 'image_path': 'C:/Users/brind/PycharmProjects/detectingsize/Finaltesttivls.jpg', 'prediction_type': 'InstanceSegmentationModel'}, {'x': 1916.5, 'y': 1968.0, 'width': 639.0, 'height': 686.0, 'confidence': 0.8820076584815979, 'class': 'ObjComparePaper', 'points': [{'x': 2209.0234375, 'y': 2290.427330679962}, {'x': 1685.234375, 'y': 2290.414401768434}, {'x': 1630.578125, 'y': 2286.1950104231696}, {'x': 1621.4593084207368, 'y': 2276.71875}, {'x': 1607.73191020788, 'y': 2185.625}, {'x': 1603.2018627419584, 'y': 1775.703125}, {'x': 1621.4221478491934, 'y': 1711.9375}, {'x': 1671.5703125, 'y': 1643.3562532833657}, {'x': 1685.234375, 'y': 1638.2330774427853}, {'x': 2117.9296875, 'y': 1638.6612790110541}, {'x': 2177.3705950155977, 'y': 1648.171875}, {'x': 2182.9490722541473, 'y': 1748.375}, {'x': 2200.0747230334237, 'y': 1803.03125}, {'x': 2201.171766399287, 'y': 1967.0}, {'x': 2218.251697013421, 'y': 2039.875}, {'x': 2219.333945280965, 'y': 2203.84375}, {'x': 2227.350285291961, 'y': 2263.0546875}, {'x': 2218.2231592742232, 'y': 2285.828125}, {'x': 2209.0234375, 'y': 2290.427330679962}], 'image_path': 'C:/Users/brind/PycharmProjects/detectingsize/Finaltesttivls.jpg', 'prediction_type': 'InstanceSegmentationModel'}], 'image': {'width': '2915', 'height': '2768'}}
height1 = dictionary['predictions'][0]['height']
height2 = dictionary['predictions'][1]['height']
mspsb9vt

mspsb9vt1#

下面是完整的工作代码:

from roboflow import Roboflow
import json
rf = Roboflow(api_key="MY_API_KEY")
project = rf.workspace().project("myprojectname")
model = project.version(3).model
data = model.predict(filename).json()
for prediction in data["predictions"]:
    height = prediction["height"]
    print(height)

要用之前的输出测试它,代码应该是:

data = {'predictions': [{'x': 895.0, 'y': 1695.0, 'width': 1046.0, 'height': 1860.0, 'confidence': 0.9421133995056152, 'class': 'Potato', 'points': [{'x': 924.6015625, 'y': 2623.1372104673196}, {'x': 769.7421875, 'y': 2624.4923239162126}, {'x': 719.640625, 'y': 2614.0989617824443}, {'x': 623.9921875, 'y': 2559.17901274988}, {'x': 550.663834749923, 'y': 2481.6796875}, {'x': 496.3996585650308, 'y': 2395.140625}, {'x': 459.90986307738143, 'y': 2299.4921875}, {'x': 400.6397144303104, 'y': 2058.09375}, {'x': 378.0168381250084, 'y': 1880.4609375}, {'x': 377.99781038883225, 'y': 1702.828125}, {'x': 382.5907827376746, 'y': 1648.171875}, {'x': 399.5838603248672, 'y': 1575.296875}, {'x': 400.78761685201823, 'y': 1520.640625}, {'x': 417.8338516784328, 'y': 1470.5390625}, {'x': 418.98823283671425, 'y': 1420.4375}, {'x': 436.0082268099264, 'y': 1374.890625}, {'x': 437.167758266602, 'y': 1338.453125}, {'x': 454.28473747609706, 'y': 1292.90625}, {'x': 459.93999704686405, 'y': 1238.25}, {'x': 490.7490388888151, 'y': 1156.265625}, {'x': 491.8288016316368, 'y': 1133.4921875}, {'x': 508.8924306355354, 'y': 1106.1640625}, {'x': 527.9234807009638, 'y': 1046.953125}, {'x': 587.5365064396046, 'y': 946.7500000000001}, {'x': 701.421875, 'y': 837.3606423937706}, {'x': 769.7421875, 'y': 800.9531828008493}, {'x': 888.1640625, 'y': 782.7755220311303}, {'x': 1015.6953125, 'y': 787.2919818609915}, {'x': 1065.796875, 'y': 799.7093941263506}, {'x': 1111.34375, 'y': 800.7217819718936}, {'x': 1184.21875, 'y': 841.8955697617723}, {'x': 1253.0610901088744, 'y': 919.4218750000001}, {'x': 1271.270475224854, 'y': 951.3046875000001}, {'x': 1307.5979330272176, 'y': 1042.3984375}, {'x': 1308.4761630837356, 'y': 1074.28125}, {'x': 1325.4859189683493, 'y': 1110.71875}, {'x': 1326.6604271523647, 'y': 1156.265625}, {'x': 1343.6799094344485, 'y': 1206.3671875}, {'x': 1344.918760905306, 'y': 1302.015625}, {'x': 1361.9423092536952, 'y': 1415.8828125}, {'x': 1363.1149293109788, 'y': 1511.53125}, {'x': 1380.1437317333514, 'y': 1593.515625}, {'x': 1381.3134576724651, 'y': 1670.9453125}, {'x': 1398.360433947605, 'y': 1721.046875}, {'x': 1399.5143973675058, 'y': 1775.703125}, {'x': 1417.1507343999447, 'y': 1848.578125}, {'x': 1416.7072734730875, 'y': 2094.53125}, {'x': 1380.4241536814905, 'y': 2208.3984375}, {'x': 1289.0801683606567, 'y': 2372.3671875}, {'x': 1134.1171875, 'y': 2527.270247909732}, {'x': 1043.0234375, 'y': 2568.9770454914824}, {'x': 1029.359375, 'y': 2581.930440392619}, {'x': 924.6015625, 'y': 2623.1372104673196}], 'image_path': 'C:/Users/brind/PycharmProjects/detectingsize/Finaltesttivls.jpg', 'prediction_type': 'InstanceSegmentationModel'}, {'x': 1916.5, 'y': 1968.0, 'width': 639.0, 'height': 686.0, 'confidence': 0.8820076584815979, 'class': 'ObjComparePaper', 'points': [{'x': 2209.0234375, 'y': 2290.427330679962}, {'x': 1685.234375, 'y': 2290.414401768434}, {'x': 1630.578125, 'y': 2286.1950104231696}, {'x': 1621.4593084207368, 'y': 2276.71875}, {'x': 1607.73191020788, 'y': 2185.625}, {'x': 1603.2018627419584, 'y': 1775.703125}, {'x': 1621.4221478491934, 'y': 1711.9375}, {'x': 1671.5703125, 'y': 1643.3562532833657}, {'x': 1685.234375, 'y': 1638.2330774427853}, {'x': 2117.9296875, 'y': 1638.6612790110541}, {'x': 2177.3705950155977, 'y': 1648.171875}, {'x': 2182.9490722541473, 'y': 1748.375}, {'x': 2200.0747230334237, 'y': 1803.03125}, {'x': 2201.171766399287, 'y': 1967.0}, {'x': 2218.251697013421, 'y': 2039.875}, {'x': 2219.333945280965, 'y': 2203.84375}, {'x': 2227.350285291961, 'y': 2263.0546875}, {'x': 2218.2231592742232, 'y': 2285.828125}, {'x': 2209.0234375, 'y': 2290.427330679962}], 'image_path': 'C:/Users/brind/PycharmProjects/detectingsize/Finaltesttivls.jpg', 'prediction_type': 'InstanceSegmentationModel'}], 'image': {'width': '2915', 'height': '2768'}}
for prediction in data["predictions"]:
    height = prediction["height"]
    print(height)

输出:

1860.0
686.0

执行测试代码的链接:https://onlinegdb.com/bVQag6jqe

相关问题