Python 3.7 JSON - AttributeError 'dict не имеет атрибута' read '' - PullRequest
0 голосов
/ 10 октября 2019

Я выполнял простые упражнения с JSON и внезапно начал обнаруживать ошибки, которые не позволяют преобразовать словари в JSON и записать их в файлы:

import json

i = {
    "element" : "some element",
    "items" : [
        1, "true", "thing"
    ],
    "nested": {
        "dfadf": "1",
        "adfgf": "2"
    }
}

file = json.load(i)

Возвращает:

Traceback (most recent call last):
  File "context-manager.py", line 15, in 
    file = json.load(i)
  File (...)"\AppData\Local\Programs\Python\Python37-32\lib\json\__init__.py", line 293, in load
    return loads(fp.read(),
AttributeError: 'dict' object has no attribute 'read'
PS (...)\json>

Я пытался вставить базовый функциональный код, но получил ту же ошибку или ошибку записи при попытке выполнить дамп в файл. Может быть, установка моего Python не работает? (Я пользуюсь ноутбуком компании, но до вчерашнего дня все было в порядке). Настройка: Windows 10, Python 3.7.4 (работает с командой 'py', чтобы не запускать Python 2.7)

Большое спасибо за ваше мнение!

1 Ответ

1 голос
/ 10 октября 2019

Вы должны открыть файл и использовать json.dump, чтобы записать json в этот файл

with open("filename.json", 'w+') as file:
  json.dump(file, i)

Аргумент w+ создаст файл, если он не существует

Если вы хотите преобразовать его в строку без записи в файл, используйте json.dumps

json_content = json.dumps(i)
...