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)