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

JSON Decoder Error - Expecting ',' delimiter: line 1 column 22 (char 21)

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)

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

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

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

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