【问题标题】:List of dictionaries to json file字典到 json 文件的列表
【发布时间】:2021-11-15 18:15:24
【问题描述】:

我想将字典列表转换为一个 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 
    linha = 0 
    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", 'a') as file:
        file.write((json.dumps(dic, indent=4, sort_keys= False)))

【问题讨论】:

  • 您要多次写入文件 - 构建一个列表并写入一次。
  • 对,这正是问题所在。很多人不明白 JSON 文件必须是单个对象或列表。您不能只是将多个 JSON 文档连接在一起。
  • 但是我该怎么做呢?

标签: python json


【解决方案1】:

我解决了:

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 
    linha = 0 
    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", 'a') as file:
    file.write((json.dumps(listadics, indent=4, sort_keys= False)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多