Список Python с сохранением json в виде однострочного списка

#python #json #list #file #append

#python #json #Список #файл #добавить

Вопрос:

У меня следующая проблема:

 def guardar_datos_en_json(dato, nombre_archivo):
    try:
        with open(nombre_archivo, "a") as contenedor:            
            json.dump(dato, contenedor)
    except:
        raise

def cargar_datos_de_json(nombre_archivo):
    lista = []    
    with open(nombre_archivo,"r") as contenedor:
        for linea in contenedor:            
            lista.append(linea)                                   
    linea = json.dumps(linea)                           
    return lista
  

Эта функция возвращает список, основанный на файле json, проблема в том, что когда я выполняю его тесты, вместо возврата списка он возвращает список с одной строкой.

Если, например, я сохраню числа 1 и 2 в файле json, когда я использую функцию cargar_datos_de_json, она вернет [’12’] вместо [1, 2], кто-нибудь знает почему? Спасибо!

Комментарии:

1. Вы пытались проверить, что содержимое файла json выглядит так, как вы ожидаете?

2. какова ваша дата

3. Проверьте мой ответ

Ответ №1:

Когда вы создаете список с помощью json.dump, он будет выглядеть следующим образом

 import json
list = [1, 2]
json.dumps(list) # '[1, 2]'
  

Я думаю, вам нужно сделать следующее

 import ast 
def cargar_datos_de_json(nombre_archivo):
    with open(nombre_archivo,"r") as contenedor:
        lista = ast.literal_eval(contenedor) 
    return lista