Никакой объект JSON не может быть декодирован, даже если в файле присутствует допустимый json - PullRequest
0 голосов
/ 04 июня 2018

Для преобразования элемента словаря в Json и записи в файл,

with open(filename,'w') as f:
        if(os.stat(f).st_size == 0):
            json.dump(new_data, f)

        else:
                    data = json.load(f)
                    data.update(new_data)#adding a new dictionary 
                    json.dump(data, f)

Я могу записать только один JSON в файл.Когда я хочу прочитать существующий файл и затем добавить другой набор словарей, я не могу это сделать.

Получение ValueError: Ни один объект JSON не может быть декодирован при попытке

json.loads (f), json.load (f)

1 Ответ

0 голосов
/ 04 июня 2018

Сначала вы должны просто прочитать файл, если он существует.Если он уже пуст, содержит недопустимый JSON или не существует, инициализируйте data пустым dict (который является элементом идентификации для метода update).

try:
    with open(filename) as f:
        data = json.load(f)
except (IOError, ValueError):
    data = {}

Затем откройте файл в режиме записи, чтобы записать обновленные данные.

data.update(new_data)
with open(filename, 'w') as f:
    json.dump(data, f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...