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

วิธีแยก JSON ใน Python

เราจะแยก JSON ใน Python ได้อย่างไร ขั้นแรก เราโหลดไฟล์ JSON โดยใช้เมธอด json.load() ผลลัพธ์คือพจนานุกรม Python จากนั้นเราสามารถเข้าถึงฟิลด์โดยใช้วิธีพจนานุกรม

JSON เป็นรูปแบบการแลกเปลี่ยนข้อมูลที่มีน้ำหนักเบา

ในการดึงข้อมูลจากไฟล์ JSON หรือการตอบกลับ JSON เราต้องแยกวิเคราะห์ข้อมูล

แยกวิเคราะห์ JSON ใน Python

เราจะใช้ JSON ต่อไปนี้ในตัวอย่างของเรา:

{
   "store":{
      "book":[
         {
            "category":"reference",
            "author":"Nigel Rees",
            "title":"Sayings of the Century",
            "price":8.95
         },
         {
            "category":"fiction",
            "author":"Evelyn Waugh",
            "title":"Sword of Honour",
            "price":12.99
         }
      ],
      "bicycle":{
         "color":"red",
         "price":19.95
      }
   },
   "expensive":10
}

ขั้นตอนแรกคือการโหลดไฟล์ JSON ใน Python:

import json

with open('store.json') as json_file:
    data = json.load(json_file)
print(data)

ไฟล์ JSON ถูกเก็บไว้ใน data ตัวแปร

วิธีการพิมพ์จะเพียงแค่พิมพ์ JSON ด้านบน

หมายเหตุ:วิธีการข้างต้นจะจัดเก็บ JSON เป็น พจนานุกรมหลาม . เราสามารถตรวจสอบได้โดยการพิมพ์ type, print(type(data))

บทช่วยสอน JSON - เรียนรู้วิธีใช้ JSON กับ JavaScript

วิธีแยก JSON ใน Python

ดึงข้อมูลเฉพาะจาก JSON

ตอนนี้เรามี JSON เป็นพจนานุกรม Python แล้ว เราสามารถดึงข้อมูลบางอย่างได้โดยการระบุฟิลด์ ซึ่งแสดงถึง key ในพจนานุกรม

ตัวอย่างเช่น ในการดึงราคาจักรยานใน JSON ด้านบน เราจะใช้:

print(data['store']['bicycle']['price'])

เอาท์พุต:

19.95

ดึงข้อมูลจากอาร์เรย์ JSON

ในตัวอย่าง JSON ด้านบน ช่อง "book" คืออาร์เรย์ JSON

เราสามารถใช้สัญลักษณ์ดัชนีเพื่อดึงข้อมูลรายการใดรายการหนึ่งได้

ตัวอย่างเช่น เพื่อให้ได้ชื่อหนังสือเล่มที่สอง เราจะใช้:

print(data['store']['book'][1]['title'])

เอาท์พุต:

Sword of Honour

การแยกวิเคราะห์แบบมีเงื่อนไขของ JSON

สมมติเราอยากได้หนังสือที่มีราคาต่ำกว่า 10.00 ทุกเล่ม

จากนั้นเราจะใช้:

books = data['store']['book']
for book in books:
    if book['price'] <= 10.00:
        print(book)

เอาท์พุต:

{'category': 'reference', 'author': 'Nigel Rees', 'title': 'Sayings of the Century', 'price': 8.95}

บทสรุป

ในโพสต์นี้ เรามาดูวิธีแยก JSON ใน Python ประเด็นสำคัญที่นี่คือเมื่อโหลดไฟล์ JSON แล้ว ไฟล์นั้นจะถูกเก็บไว้เป็นพจนานุกรม Python เมื่อเรามีดิกชันนารีแล้ว เราก็สามารถใช้เมธอดพจนานุกรมปกติเพื่อดึงค่าเฉพาะจาก JSON