Decoder对应表:
Encoder对应表:
Demo:
#!/usr/bin/env python3
# coding=utf-8
import json
a = ["aaa", 2, "ccccc", 4.4]
astr = json.dumps(a)
print(astr)
print(json.dumps(a, separators=(',', ':')))
print(json.dumps(a, indent=2))
print(json.loads(astr))
b = {"c": "1", "b": True, "a": None}
bstr = json.dumps(b)
print(bstr)
print(json.dumps(b, sort_keys=True))
print(json.loads(bstr))
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return "Student:[name=%s,age=%d]" % (self.name, self.age)
class StuEncoding(json.JSONEncoder):
def default(self, o: Student):
return [o.name, o.age]
def stu_hook(d):
return Student(d["name"], d["age"])
stu = Student("Tom", 13)
stustr = json.dumps(stu, cls=StuEncoding)
print(stustr)
studictstr = '{"name": "Jack", "age": 12}'
stuobj = json.loads(studictstr, object_hook=stu_hook)
print(stuobj)
fdict = {"id": 2, "Fname": "NAME3"}
with open("test_json.json", mode="w") as f1:
json.dump(fdict, f1)
with open("test_json.json", mode="r") as f2:
print(json.load(f2))
运行结果:
生成的test_json.json