ข้อมูลเบื้องต้นเกี่ยวกับวัตถุ JSON ใน Python

Java Script Object Notation (JSON) เป็นรูปแบบข้อมูลน้ำหนักเบาที่มีความคล้ายคลึงกับพจนานุกรมหลามหลายประการ ออบเจ็กต์ JSON มีประโยชน์เนื่องจากเบราว์เซอร์สามารถแยกวิเคราะห์ได้อย่างรวดเร็ว ซึ่งเหมาะอย่างยิ่งสำหรับการรับส่งข้อมูลระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ ในโพสต์นี้ เราจะพูดถึงวิธีใช้ไลบรารี JSON ของ python เพื่อส่งและรับข้อมูล JSON

มาเริ่มกันเลย!

ขั้นแรก เรามาตรวจสอบแพ็กเก็ต JSON ต่อไปนี้พร้อมข้อมูลเกี่ยวกับอัลบั้ม Yellow Submarine ของ The Beatle :

{
     "album_title" : "Yellow Submarine",     
     "release_year" : 1966,   
     "won_grammy" : false,
     "band" : "The Beatles",
     "album_sale": null
     "musicians" : ["John Lennon", "Paul McCartney", "George   Harrison", "Ringo Starr"],
     "studio" : {"studio_name": "Abbey Road Studios", "location": "London, England"}
     }

ในออบเจ็กต์ JSON คีย์คือสตริงและค่าอาจเป็นสตริง ตัวเลข (ทศนิยมหรือ ints) ค่าบูลีน รายการ null หรือออบเจ็กต์ JSON อื่น มีความแตกต่างเล็กน้อยระหว่างพจนานุกรม Python และออบเจ็กต์ JSON ที่มองเห็นได้จากตัวอย่างนี้ ตัวอย่างเช่น ค่าบูลีนเป็นตัวพิมพ์เล็ก และค่า "ไม่มี" จะเป็น "null" พจนานุกรมหลามที่เทียบเท่าคือ:

{
     "album_title" : "Yellow Submarine",     
     "release_year" : 1966,   
     "won_grammy" : False,
     "band" : "The Beatles",
     "album_sale": None
     "musicians" : ["John Lennon", "Paul McCartney", "George   Harrison", "Ringo Starr"],
     "studio" : {"studio_name": "Abbey Road Studios", "location": "London, England"}
     }

ตอนนี้ มาบันทึกข้อมูล JSON ตัวอย่างลงในไฟล์ข้อความชื่อ 'album.txt' ฉันทำสิ่งนี้โดยใช้บรรทัดคำสั่งเทอร์มินัลและโปรแกรมแก้ไขข้อความ 'vim' แต่คุณสามารถใช้เครื่องมือใดก็ได้ที่คุณต้องการ ต่อไป ในสคริปต์ Python มานำเข้าโมดูล JSON กัน:

import json

มาดูวิธีการที่มีอยู่ในโมดูลนี้โดยใช้วิธี 'dir()':

print(dir(json))

เราจะมุ่งเน้นไปที่วิธีการโหลดและถ่ายโอนข้อมูล หากต้องการดำเนินการต่อ ให้ใช้วิธีเปิดเพื่อเปิดไฟล์ ในวิธีการเปิด ให้ระบุชื่อไฟล์ 'album.txt' และโหมด (อ่านหรือเขียน) เราจะอ่านไฟล์ดังนั้นโหมดคือ 'r':

album_json_file = open("album.txt", "r")

ต่อไป เราสามารถใช้วิธีโหลดเพื่อโหลดข้อมูล JSON จากไฟล์ของเรา:

album = json.load(album_json_file)

หลังจากโหลดข้อมูล JSON เราจะปิดไฟล์:

album_json_file.close()

ตอนนี้เราสามารถพิมพ์ข้อมูล JSON ที่โหลดของเราได้แล้ว:

print(album)

หากเราพิมพ์ประเภทของออบเจ็กต์นี้ เราจะเห็นว่ามันเป็นพจนานุกรมหลาม:

print(type(album))

มาดูความแตกต่างระหว่างออบเจ็กต์ JSON และพจนานุกรมหลามกัน ค่า 'won_grammy' ในออบเจ็กต์ JSON คือ 'false' ในขณะที่ในพจนานุกรมจะเป็น 'False' ที่เป็นตัวพิมพ์ใหญ่ นอกจากนี้ 'album_sale' 'value Null' ยังถูกแยกวิเคราะห์เป็น 'None' ในพจนานุกรมหลาม

ตอนนี้เราได้โหลดข้อมูลของเราเป็นพจนานุกรมแล้ว เราสามารถเข้าถึงค่าในพจนานุกรมที่แยกวิเคราะห์ได้โดยใช้คีย์ ตัวอย่างเช่น หากเราต้องการเข้าถึง 'album_title' เราจะดำเนินการดังต่อไปนี้:

print("Album Title: ", album['album_title'])

หรือหากเราต้องการเข้าถึงปีที่อัลบั้มออก:

print("Release Year: ", album['release_year'])

ในแอปพลิเคชันเซิร์ฟเวอร์ไคลเอนต์ เป็นเรื่องปกติที่ออบเจ็กต์ JSON จะมาถึงในรูปแบบของสตริง ตัวอย่างเช่น ออบเจ็กต์ JSON ของเราสำหรับข้อมูลอัลบั้มอาจมีลักษณะดังนี้:

album_string = """{"album_title" : "Yellow Submarine",
     "release_year" : 1966,
     "won_grammy" : false,
     "band" : "The Beatles",
     "album_sale": null,
     "musicians" : ["John Lennon", "Paul McCartney", "George   Harrison", "Ringo Starr"],
     "studio" : {"studio_name": "Abbey Road Studios", "location": "London, England"}
     }"""

หากต้องการโหลดข้อมูลนี้โดยใช้โมดูล JSON เราใช้วิธี 'loads()':

album_s = json.loads(album_string)
album_string.close()
print(album_s)

ตอนนี้ สมมติว่าเราเริ่มต้นด้วยข้อมูลที่จัดรูปแบบพจนานุกรม และต้องการส่งข้อมูลนี้ไปยังฐานข้อมูลในรูปแบบ JSON เราสามารถใช้เมธอด dumps เพื่อแปลงพจนานุกรมเป็นออบเจ็กต์สตริง JSON มานิยามพจนานุกรมดั้งเดิมของเรากัน:

album2 = {'album_title': 'Yellow Submarine', 'release_year': 1966, 'won_grammy': False, 
 'band': 'The Beatles', 'album_sale': None, 'musicians': ['John Lennon', 'Paul McCartney', 'George   Harrison', 'Ringo Starr'], 
 'studio': {'studio_name': 'Abbey Road Studios', 'location': 'London, England'}}

ต่อไป มาพิมพ์ออบเจ็กต์สตริง JSON โดยใช้วิธี dumps:

print(json.dumps(album2))
print(type(json.dumps(album2)))

พจนานุกรมของเราได้รับการแยกวิเคราะห์อย่างถูกต้องเป็นออบเจ็กต์สตริง JSON เราเห็นว่าค่า 'album_sale' 'None' ตอนนี้เป็น 'null' และค่า 'won_grammy' 'False' กลายเป็น 'false'

สุดท้ายนี้ เราสามารถเขียนออบเจ็กต์ JSON นี้ลงในไฟล์ '.txt' โดยใช้วิธีดัมพ์:

file2 = open("album2.txt", "w")
json.dump(album2, file2)

ฉันจะหยุดที่นี่แต่อย่าลังเลที่จะลองใช้โค้ดด้วยตัวเอง

ข้อสรุป

โดยสรุป ในโพสต์นี้ เราได้พูดคุยถึงวิธีการส่งและรับข้อมูล JSON โดยใช้ไลบรารี python JSON เราได้พูดคุยถึงวิธีการโหลดซึ่งช่วยให้เราได้รับข้อมูลและวิธีการถ่ายโอนข้อมูลที่ช่วยให้เราส่งข้อมูล หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานกับออบเจ็กต์ JSON ใน python ฉันขอแนะนำ "บทช่วยสอน YouTube ของ Socratica" ฉันหวังว่าคุณจะพบว่าโพสต์นี้มีประโยชน์/น่าสนใจ รหัสจากโพสต์นี้มีอยู่ใน "GitHub" ขอบคุณสำหรับการอ่าน!