Ошибка Python/Django json.loads() при загрузке файла JSON

В моем проекте Django у меня следующая структура каталогов:

project/build/contracts/MyFile.json

И я пишу код в следующей директории

project/homeapp/views.py
<
with open("../build/contracts/MyFile.json", "r") as f:
    data = json.loads(f.read())
    abi = data["abi"]
В моем у меня есть следующий код:

Когда я пытаюсь python manage.py runserver, я получаю следующую ошибку: enter image description here

Странно то, что я не мог понять, что не так, поэтому я сделал viewstest.py и поместил в него точно такой же код. Когда я запускаю его с python .\viewstest.py и вывожу JSON на консоль, он работает совершенно нормально.

Я даже пробовал импортировать переменную abi из viewstest.py в views.py, но получил ту же ошибку. Поэтому я предполагаю, что это ошибка, связанная с Django, но я не могу разобраться в ней.

Спасибо!

Должно быть json.load(), а не json.loads()

Измените следующий код на:

with open("../build/contracts/MyFile.json", "r") as file:
    data = json.load(file)
    abi = data["abi"]

Редактировать:

Другой альтернативой для получения правильного пути может быть использование Pathlib.

from pathlib import Path

def your_view_func(request):
        current_dir = Path.cwd()
        file_loc = 'build/contracts/MyFile.json'
        
        with open(current_dir.joinpath(file_loc), 'r') as file:
            data = json.load(file)
            abi = data["abi"]
Вернуться на верх