问题现象: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