Ошибка кодирования при попытке открыть файл json из приложения django - PullRequest
1 голос
/ 05 октября 2019

У меня есть файл json в том же каталоге, что и мое приложение, где я сохранил некоторые имена и пароли. Когда пользователь нажимает кнопку, я пытаюсь извлечь эти данные и сравнить их с введенными им данными. Однако я получаю ошибку кодирования JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Я попытался добавить errors='ignore' и изменить кодировку безуспешно.

Моя функция входа в систему, которая открывает файл json:

def login(name,password):
    with open('data.json', 'r', encoding='utf-8', errors='ignore') as f:
        try:
            data = json.loads(f.read())
            #data = json.load(f) didnt work also
            print(data)

        except ValueError:  # includes simplejson.decoder.JSONDecodeError
            print('Decoding JSON has failed')
            return False

        f.close()

И это в моем приложении django

def test(request):
    if request.method == 'POST':
        given_name = request.POST.get('name', None)
        given_password = request.POST.get('pass', None)
        # do something with user
        if login(given_name, given_password):
            about(request)
        else:
            test_home(request)
         ....

Файл Json:

{
    "names": [
        "test",
    ],
    "passwords": [
        "test",
    ]
}

1 Ответ

3 голосов
/ 05 октября 2019

попробуйте изменить файл json, как я указал в комментарии;

{
    "names": [
        "test"
    ],
    "passwords": [
        "test"
    ]
}

теперь вы должны получить

with open(file) as f:
    data = json.load(f)

data
Out[5]: {'names': ['test'], 'passwords': ['test']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...