Der Grund für den Fehler ist:
json.loads(string)
Der Inhalt in string liegt nicht im Standard-JSON-Format vor
Ich verwende json.dumps und json.loads paarweise, wie zum Beispiel:
str_dict = {
"192.244.135.136:3306:error": "can not find backup file /database/mysql/xtrabackup/xtrabackup_3306/207/192.221.40.94/full_207.tar.gz", "192.244.135.135:3306:error": "restore failed: exit status 255", "192.244.135.135:3306": 0, "192.244.135.136"}
string = json.dumps(str_dict)
# string的值存入数据库中,在数据库中查询是发现,string的值是
'{"192.244.135.136:3306:error": "can not find backup file /database/mysql/xtrabackup/xtrabackup_3306/207/192.221.40.94/full_207.tar.gz", "192.244.135.135:3306:error": "restore failed: exit status 255", "192.244.135.135:3306": 0, "192.244.135.136'
# 原因是数据库里字段的长度设置少了,导致string超长了,存入mysql的时候被自动截取了,而没有报错,所以再读这个值的时候就报错了
json.loads(string) # 报错了,如标题
Es ist einfach, die Ursache des Problems zu ermitteln: Erhöhen Sie entweder die Speicherlänge der Datenbank oder begrenzen Sie die Speicherlänge.