import json
#写
with open('1.json','w',encoding='utf-8') as fp:
json.dump([{'a': 1}, {'b': 2}], fp, ensure_ascii=False, indent=4)
# json.dump({'a': 1}, fp, ensure_ascii=False, indent=4)
#读
with open('1.json',encoding='utf-8') as fp:
a=json.load(fp)
for i in a:
print(i)
# 读有多条记录的文件
with open("1.json","r",encoding='utf-8') as fp:
for line in fp:
print(json.loads(line))
#自定义类型
import json
import datetime
class MyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.datetime):
return obj.strftime("%Y-%m-%d %H:%M:%S")
if isinstance(obj, bytes):
return str(obj, encoding='utf-8')
if isinstance(obj, int):
return int(obj)
elif isinstance(obj, float):
return float(obj)
else:
return super(MyEncoder, self).default(obj)
config = {}
config['a'] = 'a'
config['b'] = 'b'
with open('1.json', 'w', encoding='utf-8') as fp:
json.dump(config, fp,cls=MyEncoder, ensure_ascii=False, indent=4)