Python 生成sql insert or update none值替换为Null值

问题现象:Python获取json数据后,写入和更新到mysql中空值报错情况:

①直接将json中的空值写入自动生成的sql中 ,null 值自动被替换为none值,写入产生报错

1366 - Incorrect integer value: 'None' for column 'creator_id' at row 1

②将none替换为 'creator_id='{14}''''.replace('None','' )

DataError: (1366, "Incorrect integer value: '' for column 'creator_id' at row 1")

③将'None'替换为'Null' 'creator_id='{14}''''.replace('None','Null' ),依旧产生报错

DataError: (1366, "Incorrect integer value: 'Null' for column 'creator_id' at row 1")

原因分析:报错原因:Python生成sql语句时,从json中来的null会被转化为None值,而mysql 不能识别

creator_id='Null' 
of  creator_id=''

只能识别

creator_id=Null

所以需要去掉生成的sql 中 null的引号

sql = ''' UPDATE table1  SET  creator_id='none''''.replace("'None'" ,"Null" )

问题解决:

> Affected rows: 1
> 时间: 0.013s

好的,以下是一个基本的用户管理系统的设计思路: 1. 首先需要安装MySQL或其他关系型数据库,并创建一个名为user_management的数据库。然后在该数据库创建一个名为users的用户表,该表包含用户名、密码和权限等字段。 2. 在Python,需要使用pymysql或其他SQL库连接到数据库,并进行相关表的操作,比如创建表、插入数据、查询数据等。 3. 接下来可以编写相应的功能模块,比如用户注册、登录、修改密码等等。这些功能可以使用SQL语句实现,也可以使用PythonSQL库实现。 4. 最后,需要编写用户界面,可以使用Python的GUI工具实现,比如Tkinter、wxPython等。 下面是一个简单的示例代码: ```python import pymysql # 连接数据库 conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='user_management', charset='utf8') cursor = conn.cursor() # 创建用户表 cursor.execute('CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, permission INT)') # 用户注册 def register(username, password): cursor.execute("INSERT INTO users (username, password, permission) VALUES (%s, %s, %s)", (username, password, 1)) conn.commit() # 用户登录 def login(username, password): cursor.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password)) user = cursor.fetchone() if user: return user[0] else: return None # 修改密码 def change_password(user_id, new_password): cursor.execute("UPDATE users SET password = %s WHERE id = %s", (new_password, user_id)) conn.commit() # 关闭数据库连接 cursor.close() conn.close() ``` 这只是一个简单的示例代码,具体的实现还需要根据需求进行调整和完善。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值