Python JSON
JSON เป็นไวยากรณ์สำหรับการจัดเก็บและแลกเปลี่ยนข้อมูล
JSON คือข้อความที่เขียนด้วยสัญกรณ์วัตถุ JavaScript
JSON ใน Python
Python มีแพ็คเกจในตัวที่เรียกว่าjson
ซึ่งสามารถใช้เพื่อทำงานกับข้อมูล JSON
ตัวอย่าง
นำเข้าโมดูล json:
import json
แยกวิเคราะห์ JSON - แปลงจาก JSON เป็น Python
หากคุณมีสตริง JSON คุณสามารถแยกวิเคราะห์ได้โดยใช้
json.loads()
เมธอด
ผลลัพธ์จะเป็นพจนานุกรม Python
ตัวอย่าง
แปลงจาก JSON เป็น Python:
import json
# some JSON:
x = '{ "name":"John", "age":30, "city":"New
York"}'
# parse x:
y = json.loads(x)
# the result is a
Python dictionary:
print(y["age"])
แปลงจาก Python เป็น JSON
หากคุณมีอ็อบเจ็กต์ Python คุณสามารถแปลงเป็นสตริง JSON ได้โดยใช้json.dumps()
เมธอด
ตัวอย่าง
แปลงจาก Python เป็น JSON:
import json
# a Python object (dict):
x = {
"name":
"John",
"age": 30,
"city": "New York"
}
#
convert into JSON:
y = json.dumps(x)
# the result is a JSON string:
print(y)
คุณสามารถแปลงอ็อบเจ็กต์ Python ประเภทต่อไปนี้เป็นสตริง JSON:
- dict
- รายการ
- ทูเพิล
- สตริง
- int
- ลอย
- จริง
- เท็จ
- ไม่มี
ตัวอย่าง
แปลงวัตถุ Python เป็นสตริง JSON และพิมพ์ค่า:
import json
print(json.dumps({"name": "John", "age": 30}))
print(json.dumps(["apple",
"bananas"]))
print(json.dumps(("apple", "bananas")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
เมื่อคุณแปลงจาก Python เป็น JSON ออบเจ็กต์ Python จะถูกแปลงเป็น JSON (JavaScript) ที่เทียบเท่ากัน:
Python | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
ตัวอย่าง
แปลงวัตถุ Python ที่มีประเภทข้อมูลทางกฎหมายทั้งหมด:
import json
x = {
"name":
"John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann","Billy"),
"pets":
None,
"cars": [
{"model": "BMW 230", "mpg":
27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
print(json.dumps(x))
จัดรูปแบบผลลัพธ์
ตัวอย่างด้านบนพิมพ์สตริง JSON แต่อ่านไม่ง่าย โดยไม่มีการเยื้องหรือขึ้นบรรทัดใหม่
วิธีjson.dumps()
นี้มีพารามิเตอร์เพื่อให้อ่านผลลัพธ์ได้ง่ายขึ้น:
ตัวอย่าง
ใช้indent
พารามิเตอร์เพื่อกำหนดจำนวนการเยื้อง:
json.dumps(x, indent=4)
คุณยังสามารถกำหนดตัวคั่นได้ ค่าเริ่มต้นคือ (", ", ": ") ซึ่งหมายถึงการใช้เครื่องหมายจุลภาคและการเว้นวรรคเพื่อแยกแต่ละวัตถุ และโคลอนและช่องว่างเพื่อแยกคีย์ออกจากค่า:
ตัวอย่าง
ใช้separators
พารามิเตอร์เพื่อเปลี่ยนตัวคั่นเริ่มต้น:
json.dumps(x, indent=4, separators=(". ", " = "))
สั่งซื้อผลลัพธ์
เมธอด มีjson.dumps()
พารามิเตอร์เพื่อเรียงลำดับคีย์ในผลลัพธ์:
ตัวอย่าง
ใช้sort_keys
พารามิเตอร์เพื่อระบุว่าควรเรียงลำดับผลลัพธ์หรือไม่:
json.dumps(x, indent=4, sort_keys=True)