เราจะแยก 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
ตอนนี้เรามี 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