Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฉันจะวนซ้ำไฟล์ JSON ที่มีหลายคีย์/คีย์ย่อยใน Python ได้อย่างไร


คุณสามารถแยกวิเคราะห์ไฟล์ JSON โดยใช้โมดูล json ใน Python โมดูลนี้แยกวิเคราะห์ json และใส่ไว้ใน dict จากนั้นคุณสามารถรับค่าจากสิ่งนี้เหมือนดิกปกติ ตัวอย่างเช่น หากคุณมี json ที่มีเนื้อหาดังต่อไปนี้ −

{
   "id": "file",
   "value": "File",
   "popup": {
      "menuitem": [
         {"value": "New", "onclick": "CreateNewDoc()"},
         {"value": "Open", "onclick": "OpenDoc()"},
         {"value": "Close", "onclick": "CloseDoc()"}
      ]
   }
}

ตัวอย่าง

คุณสามารถโหลดมันในโปรแกรม python ของคุณและวนซ้ำคีย์ของมันด้วยวิธีต่อไปนี้ -

import json
f = open('data.json')
data = json.load(f)
f.close()

# ตอนนี้คุณสามารถใช้ data เป็น dict ปกติได้ -

for (k, v) in data.items():
   print("Key: " + k)
   print("Value: " + str(v))

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

Key: id
Value: file
Key: value
Value: File
Key: popup
Value: {'menuitem': [{'value': 'New', 'onclick': 'CreateNewDoc()'}, {'value': 'Open', 'onclick': 'OpenDoc()'}, {'value': 'Close', 'onclick': 'CloseDoc()'}]}

หากคุณต้องการวนซ้ำค่าย่อยด้วย คุณจะต้องเขียนฟังก์ชันแบบเรียกซ้ำที่สามารถวนซ้ำบน dict ที่เหมือนต้นไม้นี้ได้