Python将字典列表转JSON文件时缺失逗号方括号如何解决?
代码修改方案
你当前代码的问题出在遍历每个字典时,直接将单个字典的JSON字符串追加写入文件,JSON序列化单个字典不会自动补全数组外层的方括号,也不会在多个对象之间添加分隔逗号,自然不符合数组格式的JSON规范。
修改逻辑很简单:
- 移除循环内部的逐行追加写入逻辑
- 等所有字典都被收集到
listadics列表后,直接将整个列表序列化写入文件即可,JSON模块会自动处理外层括号、对象分隔符等格式要求
修改后完整代码如下:
import re import json listadics = [] N=20 with open("processos.txt", "r") as fileoriginal: fileN = [next(fileoriginal) for x in range(N)] for v in fileN: lista = re.split(r'::|[ ]+[ ]+',v) dic = {} contador = 0 nome = 1 for elemento in lista: if elemento != '\n' and elemento != '': if contador == 0: dic["numero processo"] = elemento elif contador == 1: dic["data"] = elemento elif contador >= 2: dic["nome(s)" + str(nome)] = elemento nome += 1 contador += 1 listadics.append(dic) # 所有数据收集完成后一次性写入整个列表 with open("json.json", 'w') as file: json.dump(listadics, file, indent=4, sort_keys=False)
如果后续遇到数据量极大、无法将全量列表加载到内存的场景,可以手动控制写入格式:先写入开头的[,循环写入每个字典的JSON字符串时,除最后一个对象外末尾加,,最后写入结尾的]即可。
内容的提问来源于stack exchange,提问作者Pestana
相关产品推荐
相关产品推荐

