ความแตกต่างระหว่าง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