JSON解码器错误,需要“,”分隔符:第1行第22列(字符21)

2024-09-28 17:23:47 发布

您现在位置:Python中文网/ 问答频道 /正文

print(signupEmail, signupPassword)
signupInfo = str({f'\"{signupEmail}\":{{"password":\""{signupPassword}\", "Username":\"{signupUsername}\"}}'})
signupInfo = signupInfo.replace(".","-")
signupInfo = signupInfo.replace("\'","")
to_database = json.loads(signupInfo)
print((to_database))
requests.patch(url = self.url,json = to_database)
self.strng.get_screen('loginscreen').manager.current = 'loginscreen'

当我尝试运行这个时,我得到json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 22 (char 21)


Tags: toselfjsonurlusernamepassworddatabasereplace
1条回答
网友
1楼 · 发布于 2024-09-28 17:23:47

首先,当您遇到这样的错误时,我会首先尝试在调试器中单步执行代码,或者至少打印出给您带来麻烦的字符串。如果您这样做了,您会看到signupInfo包含:

{"(signupEmail)":{"password":""(signupPassword)", "Username":"(signupUsername)"}}

显然,密码前有两个引号。如果您修复了创建字符串的行,删除了双引号,它将起作用:

#                                                    v < - get rid of extra quote that was here
signupInfo = str({f'\"{signupEmail}\":{{"password":\"{signupPassword}\", "Username":\"{signupUsername}\"}}'})

相关问题 更多 >