Python遍历JSON币种价格列表更新MySQL数据库数据无变化如何解决
问题原因
你写的SQL语句完全不符合MySQL UPDATE 语法规范,导致数据库无法识别执行逻辑,所以没有数据变更。
现有代码的核心错误
- UPDATE语法结构错误:标准UPDATE语法为
UPDATE 表名 SET 字段名=新值 WHERE 匹配条件,你现有写法既没有SET关键字指定要更新的price字段,也没有WHERE条件定位要修改的行,数据库无法执行操作。 - 注释掉的测试代码也存在多处错误:括号位置错误、UPDATE语句误用INSERT才会用到的
VALUE关键字、占位符错误写为大写%S、字符串值未正确传参。
正确修改代码
把你循环里的数据库执行部分替换为以下代码即可:
for item in json_obj2: coin_name = item.get('coin_name') price = item.get('price') # 标准UPDATE写法,先指定要更新的price字段,再用coin_name匹配对应行 mycursor.execute("UPDATE liste_coin SET price = %s WHERE coin_name = %s", (price, coin_name)) # 可以加这行打印确认匹配到的行数,如果返回0说明数据库里没有对应coin_name的记录 print(f"更新{coin_name},匹配行数:{mycursor.rowcount}") mydb.commit()
额外排查点
如果执行后打印的匹配行数为0,说明你的liste_coin表中不存在对应coin_name的记录,需要先核对表内的coin_name取值是否和你传入的完全一致。
内容的提问来源于stack exchange,提问作者g rom
相关产品推荐
相关产品推荐

