Обработка ввода от пользователя и сохранение его как «сына» объекта, а затем открыть его? - PullRequest
0 голосов
/ 06 октября 2019

Привет, я новичок в кодировании, но хочу узнать, что я написал этот код, который позволяет пользователю вставлять ввод и который впоследствии должен сохранить его как текстовый файл (.txt) с помощью json, а затем я хочу открыть файл как (. TXT), чтобы позже иметь возможность изменять информацию по мере необходимости.

Когда я сохраняю информацию о пользователе, содержимое файла выглядит так:

{"Titel": "kalle"}{"Titel": "peter"}{"Titel": "kim"}{"Titel": "sena"}

Но когда я хочу открытьэтот файл с этим коммандосом:

import json

with open('testtitel.txt') as f:
    json_data = json.load(f)

print(json_data)  

Этот текст появляется:

Traceback (most recent call last):
  File "openjson.py", line 4, in <module>
    json_data = json.load(f)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 296, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 340, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 19 (char 18)

Что не так, если кто-то может показать, что нужно изменить, и объяснить, как я новичок в кодировании Я добавлюкод также.

enter code

import json


class infoCd():
    def __init__(self, EnTitel):
        self.EnTitel = EnTitel
        # //load to json dic function sa simon
    def make_dict(self):
        the_dict = {"Titel":self.EnTitel}
        return the_dict

    def readFromDict(self, inputDict):
        self.EnTitel = inputDict["Titel"]

    def display_cd_details(self):
        print(" Title: {}  ".format(self.EnTitel))


    def see_details(self):
        with open('testtitel.txt') as json_file:
            testtitel = json.load(json_file)
            for p in testtitel:
                print(p)    
        
def save_cd_details(cd):
    with open('testtitel.txt', 'a') as txtfile:
        json.dump(cd.make_dict(), txtfile)     


def insert_cd_details():
    counter = 0
    lista = []
    while(True):
        EnTitel = input("Insert a titel: ")
        counter+=1

        Cd = infoCd(EnTitel )
        lista.append(Cd)
        print(lista)

    
        save_cd_details(Cd)
        avslutaCd = input(" Do you still want to(j/n)")
        if (avslutaCd   == "j"):
            print("JAAA")
        else:
            print("Nej")
            break  

    return lista    
    

a = insert_cd_details()
for cd in a:
    cd
print(a)





 // code to open
 
 
with open('testtitel.txt') as f:
    json_data = json.load(f)

print(json_data)  

здесь

1 Ответ

0 голосов
/ 06 октября 2019

Строка, которую вы пытаетесь декодировать, недопустима в формате JSON. Я думаю, что вы хотите это вместо:

[{"Titel": "kalle"}, {"Titel": "peter"}, {"Titel": "kim"}, {"Titel": "sena"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...