วิธีแปลงพจนานุกรมเป็น JSON ใน python

How Convert Dictionary Json Python



JSON (JavaScript Object Notation) เป็นรูปแบบไฟล์ที่นิยมนำเสนอข้อมูลที่มีโครงสร้างและถ่ายโอนข้อมูลระหว่างเซิร์ฟเวอร์และแอปพลิเคชันได้อย่างง่ายดาย โครงสร้างของไฟล์นี้คล้ายกับอ็อบเจ็กต์ Python เช่น list, tuple และ dictionary คุณสามารถแปลงวัตถุพจนานุกรมใด ๆ เป็น JSON วัตถุโดยใช้ ดัมพ์() และ ทิ้ง() วิธีการของ json โมดูล. บทความนี้แสดงวิธีการแปลงวัตถุพจนานุกรมเป็นวัตถุ JSON ในหลาม

json.dumps() วิธีการ:

วิธีนี้ใช้เพื่อแปลงวัตถุพจนานุกรมเป็นข้อมูล JSON สำหรับการแยกวิเคราะห์หรืออ่านและช้ากว่า ดัมพ์() กระบวนการ.







ไวยากรณ์:



เจสันทิ้ง(วัตถุ,เยื้อง=ไม่มี,sort_keys=เท็จ)

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



json.dump() วิธีการ:

วิธีนี้ใช้เพื่อเก็บอ็อบเจ็กต์ python ลงในไฟล์ JSON มันเร็วกว่า ทิ้ง() วิธีเพราะมันเขียนในหน่วยความจำและไฟล์แยกกัน





ไวยากรณ์:

เจสันทิ้ง(พจนานุกรม,fileHandler,เยื้อง=ไม่มี)

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



วิธีที่ทั้งสองวิธีนี้สามารถใช้เพื่อแปลงวัตถุพจนานุกรมเป็นไฟล์ JSON หรือสตริง JSON ได้แสดงไว้ด้านล่างของบทความนี้

ตัวอย่างที่ 1: แปลงพจนานุกรมเป็น JSON โดยใช้ ทิ้ง() ด้วยการเยื้อง

มีการกล่าวถึงก่อนหน้านี้ว่าวิธี dumps() มีพารามิเตอร์บังคับหนึ่งพารามิเตอร์และสามารถใช้วัตถุพจนานุกรมเพื่อแปลงข้อมูลเป็นสตริง JSON ในสคริปต์ต่อไปนี้ dict_data เป็นตัวแปรพจนานุกรมที่มีข้อมูลของบันทึกนักเรียนโดยเฉพาะ ในตอนแรก, การถ่ายโอนข้อมูล() วิธีการใช้กับอาร์กิวเมนต์เดียวและค่าของ dict_data ถูกแปลงเป็นข้อมูล JSON ผลลัพธ์ของทั้งรูปแบบพจนานุกรมและ JSON จะเหมือนกันหากไม่มีการใช้การเยื้องในข้อมูล JSON ต่อไป, การถ่ายโอนข้อมูล() เมธอดใช้กับสองอาร์กิวเมนต์ และ 3 ถูกใช้เป็นค่าเยื้องสำหรับข้อมูล JSON เอาต์พุต JSON ที่สองจะสร้างด้วยการเยื้อง

#!/usr/bin/env python3
# นำเข้าโมดูล json
นำเข้าjson

# กำหนดพจนานุกรม
dict_data= { 'รหัสนักศึกษา':'011894', 'ชื่อ':'แมทธิว', 'แบทช์':30, 'ภาคเรียน':6 }
# พิมพ์ข้อมูลพจนานุกรม
พิมพ์('เอาต์พุตพจนานุกรม:NS',dict_data, 'NS')

# แปลงพจนานุกรมเป็นวัตถุ json โดยไม่ต้องเยื้อง
json_data=เจสันทิ้ง(dict_data)
# พิมพ์ json data
พิมพ์('เอาต์พุต JSON โดยไม่มีการเยื้อง:NS',json_data, 'NS')

# แปลงพจนานุกรมเป็นวัตถุ json ด้วยการเยื้อง
json_data=เจสันทิ้ง(dict_data,เยื้อง=3)
# พิมพ์ข้อมูล json ด้วยการเยื้อง
พิมพ์('เอาต์พุต JSON พร้อมการเยื้อง:NS',json_data)

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์

ตัวอย่างที่ 2: แปลงพจนานุกรมเป็น JSON โดยใช้ dumps() ด้วย sort_keys

คีย์ของข้อมูล JSON สามารถจัดเรียงได้โดยใช้ sort_keys อาร์กิวเมนต์ของการถ่ายโอนข้อมูล () ค่าเริ่มต้นของอาร์กิวเมนต์นี้เป็นเท็จ ในสคริปต์ต่อไปนี้ ออบเจ็กต์พจนานุกรมจะถูกแปลงเป็นข้อมูล JSON โดยไม่ใช้ sort_keys และใช้ sort_keys เพื่อแสดงการใช้อาร์กิวเมนต์นี้ วิธีการถ่ายโอนข้อมูลครั้งแรก () ใช้กับค่าการเยื้อง 5 และผลลัพธ์จะแสดงข้อมูล JSON โดยใช้การเยื้อง 5 ในวิธีการถ่ายโอนข้อมูลที่สอง () sort_keys จะใช้และตั้งค่าเป็น True เพื่อจัดเรียงค่าคีย์ เอาต์พุต JSON สุดท้ายจะแสดงข้อมูลหลังจากจัดเรียงค่าคีย์แล้ว

#!/usr/bin/env python3
# นำเข้าโมดูล json
นำเข้าjson

# กำหนดพจนานุกรม
dict_data= {'ชื่อ':'เมดิสัน','เดือน':'อาจ','ปี':2020,'ฝ่ายขาย':[1000, 2100, 3500, 1200]}
# พิมพ์ข้อมูลพจนานุกรม
พิมพ์('เอาต์พุตพจนานุกรม:NS',dict_data, 'NS')

# แปลงพจนานุกรมด้วยข้อมูลรายการเป็น json
json_data=เจสันทิ้ง(dict_data,เยื้อง= 5)
# พิมพ์ json data
พิมพ์('เอาต์พุต JSON พร้อมการเยื้อง:NS',json_data)

# แปลงพจนานุกรมที่มีข้อมูลรายการเป็น json โดยการจัดเรียงคีย์
json_data=เจสันทิ้ง(dict_data,เยื้อง= 5,sort_keys= จริง)
# พิมพ์ข้อมูล json ที่เรียงลำดับตามคีย์
พิมพ์('เอาต์พุต JSON ที่เรียงลำดับด้วยการเยื้อง:NS',json_data)

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์ เอาต์พุต JSON แรกแสดงค่าคีย์ตามที่กำหนดไว้ในพจนานุกรม และเอาต์พุต JSON ที่สองแสดงค่าคีย์ตามลำดับการจัดเรียง

ตัวอย่างที่ 3: แปลงพจนานุกรมเป็นข้อมูล JSON และจัดเก็บเป็นไฟล์ JSON

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

#!/usr/bin/env python3
# นำเข้าโมดูล json
นำเข้าjson

# กำหนดพจนานุกรม
dict_data= { 'c-101':'การเขียนโปรแกรม PHP', 'c-102':'การเขียนโปรแกรมทุบตี', 'c-103':
'การเขียนโปรแกรมหลาม',
'c-104':'การเขียนโปรแกรมเชิงวัตถุ' }
# พิมพ์ข้อมูลพจนานุกรม
พิมพ์('เอาต์พุตพจนานุกรม:NS',dict_data, 'NS')

# ตั้งชื่อไฟล์ json
jsonไฟล์= 'course_list.json'
# เปิดไฟล์ json เพื่อเขียน json data
กับ เปิด(jsonไฟล์, 'ใน') เช่นfileHandler1:
เจสันทิ้ง(dict_data,fileHandler1,เยื้อง= 2)

# เปิดไฟล์ json เพื่ออ่าน
fileHandler2= เปิด(jsonไฟล์)
พิมพ์('เนื้อหาของไฟล์ JSON:NS',fileHandler2.อ่าน())

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์

บทสรุป:

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