ความแตกต่างระหว่างjson.dumpsและjson.loadคืออะไร?
จากความเข้าใจของฉันหนึ่งโหลด JSON ลงในพจนานุกรมและอีกหนึ่งโหลดลงในวัตถุ
ความแตกต่างระหว่างjson.dumpsและjson.loadคืออะไร?
จากความเข้าใจของฉันหนึ่งโหลด JSON ลงในพจนานุกรมและอีกหนึ่งโหลดลงในวัตถุ
คำตอบ:
dumps รับวัตถุและสร้างสตริง:
>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
load จะใช้วัตถุเหมือนไฟล์อ่านข้อมูลจากวัตถุนั้นและใช้สตริงนั้นเพื่อสร้างวัตถุ:
with open('file.json') as fh:
a = json.load(fh)
โปรดทราบว่าdumpและloadแปลงระหว่างไฟล์และวัตถุในขณะที่dumpsและloadsแปลงระหว่างสตริงและวัตถุ คุณสามารถนึกถึงsฟังก์ชั่น -less ที่ล้อมรอบsฟังก์ชัน:
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
objectในความหมายของ "บางอย่างของประเภทอื่นที่ไม่ใช่str" สตริงเช่น'"foo"'ถอดรหัสกับงูหลาม strวัตถุ'foo'; สตริง like "[1,2,3]"จะถูกถอดรหัสไปยังรายการ Python [1,2,3]และอื่น ๆ
dumps()- การเข้ารหัสไปยังวัตถุ JSON dump()- การเขียนสตริงที่เข้ารหัสในไฟล์loads()- ถอดรหัสสตริง JSON load()- ถอดรหัสในขณะที่อ่านไฟล์ JSON
โหลด json -> ส่งคืนวัตถุจากสตริงที่แสดงวัตถุ json
json dumps -> ส่งคืนสตริงที่แสดงถึงวัตถุ json จากวัตถุ
load and dump -> read / write จาก / to file แทนที่จะเป็น string