Python JSON文件未读取

Python JSON文件未读取,python,json,Python,Json,用户名输入转换为小写 import json import io username = input('Enter your username ') #Input password = input('Now enter your password ') #Input usernamelow = username.lower() 写入JSON文件的JSON字符串 auth = { "users": usernamelow, "pass": password } (转

用户名输入转换为小写

import json
import io

username = input('Enter your username ') #Input
password = input('Now enter your password ') #Input

usernamelow = username.lower() 
写入JSON文件的JSON字符串

auth = {
    "users": usernamelow,
    "pass": password
    }
(转储授权) 将数据添加到JSON文件^

dump = json.dumps(auth) #Gathers data
print (dump) #Debug print
with open('auth.json', 'a') as outfile:
    for line in outfile:
        json.dump(auth, outfile, indent=4)
基本上,这是我正在处理的一个学校项目,当我多次附加到文件时,它会给我一个额外的数据错误。这是运行脚本时显示的JSON:

with open('auth.json', 'r') as f:
    data = json.load(f)
我似乎遇到了以下错误:

ValueError:额外数据:第4行第2列-第7行第2列(字符52- 110)


好的,下面的错误告诉我们:-

{
    "pass": "testpass", 
    "users": "testuser"
}{
    "users": "testinguser", 
    "pass": "testingpass"
}
您试图加载的数据未正确格式化为JSON。正确的JSON格式应为:-

ValueError: Extra data
更好的做法是在DICT列表中一次性输入所有数据,然后将其作为一个整体转储到文件中:-

[{
    "pass": "testpass", 
    "users": "testuser"
}, {
    "users": "testinguser", 
    "pass": "testingpass"
}]

错误可能是条目之间缺少逗号

另一种方法是,首先从文件中收集(词典)列表中的所有现有数据,然后附加新输入。这可能有助于检查重复项

with open('auth.json', 'a') as outfile:
    json.dump(auth_list, outfile, indent=4)

这可能也是一个有用的资源,它不是有效的JSON。您需要在每个用户的详细信息之间添加逗号,并将整个内容包含在
[…]
中,这是怎么回事?btwas@AhsanMalik在他的回答中说,很抱歉这个愚蠢的问题,最简单的方法是将所有这些dict放入一个列表,然后在整个列表中使用
json.dump
。好的,这对现在存储它很有效,但我正在继续并尝试识别它。比如usernamelow=username.lower()如果usernamelow==auth_list[users]:打印(“存在”)类似的内容
import json
import os

auth_list = []
file_name = 'auth.json'

if os.path.isfile(file_name):
    with open(file_name, 'r') as f:
        auth_list = json.load(f)

print(auth_list)

username = input('Enter your username ')
password = input('Now enter your password ')

usernamelow = username.lower()

auth = {
   "users": usernamelow,
   "pass": password
}
auth_list.append(auth)

with open(file_name, 'w') as outfile:
    json.dump(auth_list, outfile)