Вывести JSON файл из Python. Данные в файле JSON испорчены - PullRequest
0 голосов
/ 11 марта 2020

Я написал код, который выводит файл JSON с сервера SQL, но файл JSON очень испорчен. Он повторяет некоторые данные и очень сбивает с толку:

JSON Выходной файл:

[["Name: ", "Trenton", "Age: ", "16", "Losses: ", "0"]][["Name: ", "Trenton", "Age: ", "16", "Losses: ", "0"], ["Name: ", "Max", "Age: ", "15", "Losses: ", "0"]][["Name: ", "Trenton", "Age: ", "16", "Losses: ", "0"], ["Name: ", "Max", "Age: ", "15", "Losses: ", "0"], ["Name: ", "Corbin", "Age: ", "16", "Losses: ", "0"]][["Name: ", "Trenton", "Age: ", "16", "Losses: ", "0"], ["Name: ", "Max", "Age: ", "15", "Losses: ", "0"], ["Name: ", "Corbin", "Age: ", "16", "Losses: ", "0"], ["Name: ", "TJ", "Age: ", "17", "Losses: ", "0"]][["Name: ", "Trenton", "Age: ", "16", "Losses: ", "0"], ["Name: ", "Max", "Age: ", "15", "Losses: ", "0"], ["Name: ", "Corbin", "Age: ", "16", "Losses: ", "0"], ["Name: ", "TJ", "Age: ", "17", "Losses: ", "0"], ["Name: ", "Xander", "Age: ", "16", "Losses: ", "0"]]

Код:

import psycopg2
import json

try:
    connection = psycopg2.connect(user="postgres", password="password", host="192.168.1.88", port="5432", database="losers")
    cursor = connection.cursor()
    postgreSQL_select_Query = "select * from people"

    cursor.execute(postgreSQL_select_Query)
    loss_records = cursor.fetchall()

    lossarray_list = []

    for row in loss_records:
        t = (row[0], row[1], row.[2])
        lossarray_list.append(t)
        with open('data.json', 'a') as out:
            json.dump(lossarray_list, out)


except (Exception, psycopg2.Error) as error:
    print("Error while fetching data from database", error)

finally:
    if(connection):
        cursor.close()
        connection.close()

Вывод должен выглядеть примерно так ссылка ниже

[{"Name: ", "Name1", "Age: ", "16", "Losses: ", "0"}],[{"Name: ", "Name2", "Age: ", "16", "Losses: ", "0"}],[{"Name: ", "Name3", "Age: ", "16", "Losses: ", "0"}],[{"Name: ", "Name4", "Age: ", "16", "Losses: ", "0"}],[{"Name: ", "Name5", "Age: ", "16", "Losses: ", "0"}]

Что происходит и как это исправить?

1 Ответ

0 голосов
/ 11 марта 2020

Дамп всего lossarray_list один раз в конце l oop, а не каждый раз через него.

    lossarray_list = [row[:3] for row in loss_records]
    with open('data.json', 'w') as out:
        json.dump(lossarray_list, out)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...