首页 > 解决方案 > 尝试从 django 应用程序打开 json 文件时出现编码错误

问题描述

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",
    ]
}

标签: pythonjsondjango

解决方案


正如我在评论中指出的那样,尝试修改 json 文件;

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

现在你应该得到

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

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

推荐阅读