尝试从Django应用打开json文件时出现编码错误

时间:2019-10-05 14:37:05

标签: python json django

我的应用与我的应用位于同一目录中,其中有一个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 个答案:

答案 0 :(得分:3)

尝试修改我在评论中指出的json文件;

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

现在你应该得到

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

data
Out[5]: {'names': ['test'], 'passwords': ['test']}