因为许多网上的指导都是一条json和一条dic的读写,因此,写个博客记录一下多个json和dict的文件读取
从json文件(多行)读取为dict,多个dict保存为list:
def read_json(readPath):
with open(readPath, "r", encoding='utf-8') as r:
dics = [json.loads(line.strip()) for line in r.readlines()]
#print(dics)
return dics
将多个dict的list写成json文件(多行):
def write(dics, writePath):
with open(writePath, "w", encoding='utf-8') as w:
for dic in dics:
w.write(json.dumps(dic, ensure_ascii=False)+"\n") # 写为一行
#w.write(json.dump(dic, indent=2, sort_keys=True, ensure_ascii=False)+"\n") # 每条写为多行,缩进2空格,中文字符不转义成Unicode
Over!
附加:单个dict和json文件的读写:
从json文件(一个dict可以打印成多行或一行)读取为一个dict:
def read_json_1dict(path):
"""
读取json,用于一个dict
:param path: 路径
:return: 一个dict
"""
with open(path, "r", encoding='utf-8') as r:
dic = json.load(r)
#print(dic)
return dic
将一个dict写成json文件(多行和单行显示)
def write_json_2format_1dict(dic, jsonFile):
"""
一个dict写成json文件,两个可视化使用
:param dic: 一个dict
:param jsonFile: 路径
:return:
"""
with open(jsonFile, "w", encoding='utf-8') as w:
w.write(json.dumps(dic, ensure_ascii=False)+"\n") # 写为一行
with open(jsonFile[:-5]+"_mulLine.json", "w", encoding='utf-8') as w:
w.write(json.dumps(dic, indent=4, sort_keys=False, ensure_ascii=False)+"\n") # 写为多行