ข้อมูลเบื้องต้นเกี่ยวกับวัตถุ 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" ขอบคุณสำหรับการอ่าน!