簡體   English   中英

如何使用Python遍歷JSON值?

[英]How can I iterate through JSON values using Python?

我的JSON數據如下所示:

{
    "cameras": [
        {
            "item": "810-00022",
            "name": "front",
            "serial": "000287"
        },
        {
            "item": "810-00022",
            "name": "rear",
            "serial": "000166"
        },
        {
            "item": "810-00022",
            "name": "left",
            "serial": "000492"
        },
        {
            "item": "810-00022",
            "name": "right",
            "serial": "000282"
        },
        {
            "item": "810-00022",
            "name": "inside",
            "serial": "000143"
        }
    ],
    "item": "810-00023",
    "mac": "14:1f:ba:90:01:16",
    "name": 1623,
    "serial": "000408"
}
{
    "cameras": [
        {
            "item": "810-00032",
            "name": "inside",
            "serial": "000007"
        },
        {
            "item": "810-00022",
            "name": "right",
            "serial": "000941"
        },
        {
            "item": "810-00022",
            "name": "front",
            "serial": "000637"
        },
        {
            "item": "810-00022",
            "name": "left",
            "serial": "000430"
        }
    ],
    "item": "810-00023",
    "mac": "14:1f:ba:90:01:9e",
    "name": 1599,
    "serial": "000309"
}

如何輸出每個條目的名稱(不是攝像機名稱)?

從理論上講,我希望能夠打印以下16231599

我有以下內容,但由於某些原因它無法正常工作:

json2 = open('C:\\Users\\' + comp_name + '\\Documents\\Python Firmware Script\\curl\\src\\systemidsout.json')
json2_obj = json.load(json2)

for i in json2_obj[]:
     print i['name']

我希望上面的方法能像我其他JSON文件一樣有效,但是我猜測是因為布局可能不同,所以無法正常工作。

如何在JSON文件中輸出“名稱”值?

此外,作為一個額外的問題,如何在攝像機陣列中輸出單個名稱?

如果您將for i in json2_obj[]:中的i in json2_obj:更改for i in json2_obj[]:中的i in json2_obj: ,它將起作用。 如果要輸出攝像機陣列中的各個名稱,請使用

for j in i['cameras']:
    print(j['name'])

在您的for循環中。

只需提一下,您的JSON數據實際上就有2個JSON。 如果要從一個文件中讀取它們,則可能需要將其更改為[{...},{...}]格式。 否則, json.load()可能會引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM