簡體   English   中英

在 python 中沒有列表的情況下迭代 Json

[英]Iterate over Json with no list in python

我希望能夠使用 Json 中的字典進行迭代,就像使用列表一樣。

import json

f = '''
{
  "configurator": {
    "term": "enabled"
  },
  "monitor": {
    "nortel": "thread"
  },
  "micros": {
    "code": "1200"
  },
  "universities": {
    "univ1": {
      "code": "TTSG",
      "rsample": {
        "meta_data": "TGED",
        "samcode": ""
      },
      "tables": {
        "count": "1"
      },
      "storage": {
        "wooden": [],
        "metal": [],
        "plastic": []
      }
    },
    "univ2": {
      "code": "TTSS",
      "rsample": {
        "meta_data": "TGES",
        "samcode": ""
      },
      "tables": {
        "count": "2"
      },
      "storage": {
        "wooden": [],
        "metal": [],
        "plastic": []
      }
    }
  }
}
'''
data = json.loads(f)
data_topology = data['universities']

for item in data_topology:
    print(item.rsample)

低於錯誤。

Traceback (most recent call last):
  File "main.py", line 52, in <module>
    print(item.rsample)
AttributeError: 'str' object has no attribute 'rsample'


** Process exited - Return Code: 1 **
Press Enter to exit terminal

預期的:

應該能夠使用 for 循環中的任何鍵值來迭代每個 univ# 塊。 即,每個univ#都應該是for循環中的一個項目,這樣我就可以對任意數量的univ#執行一些操作

json object 實際上是一個字典,所以代替

for item in data_topology:
    print(item.rsample)

你有寫:

for key in data_topology:
    print(data_topology[key])

甚至更好:

for key, value in data_topology.items():
    print(key, ":", value)

暫無
暫無

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

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