python cx_Oracle 将sql使用游标执行编码问题

将python爬取到的信息使用format填入设定的sql中,再使用游标执行这串sql。

sql = "INSERT INTO SPIDER_BJ_ATTRIBUTE(jj, hxjg, jzmj, szlc, JZSJ, cx, zxqk, id, fbsj ,zj, dj, sf, fwhx) VALUES(。。。。)

            print(sql)
            cursorObj.execute(sql)
            connectObj.commit()

最终打印的sql是

INSERT INTO SPIDER_BJ_ATTRIBUTE(jj, hxjg, jzmj, szlc, JZSJ, cx, zxqk, id, fbsj ,zj, dj, sf, fwhx) VALUES('沿湖小区 精装南北通透 独立两室 客厅通阳台 无税', '2室2厅','90m²', '中层(共6层)','2000年建造', '南北','精装修', ' 1525906959', '2018年12月08日','190万', '21111 元/m²', '57.00万', '普通住宅')

但是最终执行游标时出现了错误
UnicodeEncodeError: 'gbk' codec can't encode character '\xb2' in position 145: illegal multibyte sequence

刚开始学python,基础也不是很好的我。在网上看了一些帖子也没有把问题解决。

请各位大佬帮忙看一下。

2个回答

通过努力问题明确了一些

我把sql进行了转码

print(sql.encode("utf-8"))
cursorObj.execute(sql.encode("utf-8"))
connectObj.commit()

b"INSERT INTO SPIDER_BJ_ATTRIBUTE(jj, hxjg, jzmj, szlc, JZSJ, cx, zxqk, id, fbsj ,zj, dj, sf, fwhx) VALUES('\xe9\x80\x9a\xe5\xb7\x9e\xe4\xb8\x9c\xe9\xa6\x96\xe4\xbb\x9810\xe4\xb8\x87\xef\xbc\x8c\xe8\xbf\x91\xe5\x9c\xb0\xe9\x93\x81 \xe7\xb2\xbe\xe8\xa3\x85\xe4\xba\xa4\xe6\x88\xbf \xe6\x8e\xa5\xe9\x80\x81\xe7\x9c\x8b\xe6\x88\xbf', '2\xe5\xae\xa42\xe5\x8e\x85','82m\xc2\xb2', '\xe9\xab\x98\xe5\xb1\x82(\xe5\x85\xb120\xe5\xb1\x82)','2017\xe5\xb9\xb4\xe5\xbb\xba\xe9\x80\xa0', '\xe5\x8d\x97\xe5\x8c\x97','\xe7\xb2\xbe\xe8\xa3\x85\xe4\xbf\xae', ' 1497237168', '2018\xe5\xb9\xb411\xe6\x9c\x8814\xe6\x97\xa5','101\xe4\xb8\x87', '12317 \xe5\x85\x83/m\xc2\xb2', '30.30\xe4\xb8\x87', '\xe6\x99\xae\xe9\x80\x9a\xe4\xbd\x8f\xe5\xae\x85')"

错误变成了
cx_Oracle.DatabaseError: ORA-00917: 缺失逗号
但是插入的结果不是中文。。。。

我猜是 '21111 元/m²'有问题,换一个123进去试试

zeiro_sun
_zeiro_ 但是num 元/m2是我要爬取的信息呀,我虽然没有测试,但是这个我认为是在运行的时候是不能修改的
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
Python通过cx_Oracle调用过程,过程中的OUT游标怎么在Python中打开?怎么把游标中的列名提取出来?
1
利用游标处理表数据问题求助
4
oracle用游标将A表的字段和B表3个字段匹配,匹配到就将B表的三个字段和A表的CODE字段输入到一张新表里面
1
怎样写这样的一个定时job
1
javascript 前端indexDB,根据游标遍历所有数据排序无效问题?
1
救救孩子,实现当两张表拥有共同的字段时将两张表相应内容插入第三张表的问题
0
sql创建存储过程的问题
2
python操作mysql怎么开启事务
1
使用游标查询部门为10的员工,并为其增加1000元,我这里测试反馈数据不正确,麻烦请教感谢
0
如何为SQL存储过程的参数赋值为另一张表查询的结果集,让存储过程按照这个结果集依次执行所有结果集
2
sql使用游标插入数据 为什么出现死循环?
3
请问使用游标处理动态sql的时候出现长度超长的问题如何解决?
1
C#中选完combox的值,曲线上自动出现相关值的游标是如何实现的,各位大神帮忙想想要用到游标的什么事件
1
sqlserver游标查询use @Name这行报错,我怀疑是@Name类型不支持use,求解决方法
0
利用scrapy 爬取知乎关注者信息并存取MySQL中。
3
为什么Python调用Pymysql执行sql查询语句比数据库中慢得很多很多?
2
plsql中的存储过程execute immediate相关问题
2
24小时内只向数据库中插入一条数据
1
springboot2.1.8集成druid连接池 无法实现sql监控
0
1、用户表(用户编号,用户名称, 性别 ,出身日期, 身份证号,所属部门编号,所属职位编号,是否管理员[bool]) 2、部门表(部门编号,部门名称) 3、用户工资表(用户编号,工资月份,工资金额)