将python中的数据插入到mysql数据库中

qq_34621405 2017-09-14 10:43:51
现有数据库,先进行测试,返回1说明可以成功连接数据库并插值
>>> sql = "INSERT INTO land_right_transfer (id, landnumber, size,landusage,tranprice,bider,Donetime,result) VALUES ( '%s', '%s', '%s','%s','%s','%s','%s','%s' )"
>>> data=('4','龙岩长汀县-2017G06','4756.30','公共设施用地:面积 4756','286.00','中国移动通信集团福建有限公司龙岩分公司','2017-09-14','已成交')
>>> cur.execute(sql%data)
1

现有result数据,格式如下,想把这些数据批量插入到land_right_transfer数据表中,不管是插入result数据还是其中一条数据,结果都报错?请大家帮忙看看,哪里错了,该如何将这些数据一次性都插入到数据库中

(['序号', '宗地号', '面积(平方米)', '土地用途及出让年限', '成交价(万元)', '竞得人', '成交时间', '状态'],
['1', '龙岩长汀县-2017G06', '4756.30', '公共设施用地:面积 4756....', '286.00', '中国移动通信集团福建有限公司龙岩分公司', '2017-09-14', '已成交'],
['2', '泉州永春县-2017-01号', '40865.00', '工业用地(通用设备制造业:面积...', '1048.00', '泉州市源福机械制造有限公司', '2017-09-13', '已成交'],
['3', '漳州常山开发区-2017(挂)1号', '937.91', '科教用地:面积 937.91平...', '48.00', '吴涵', '2017-09-13', '已成交'],
['4', '南平光泽县-GZG201711', '3077.00', '街巷用地:面积 3077平方米...', '46.00', '光泽县公共交通公司', '2017-09-12', '已成交'], ['5', '南平光泽县-GZG201710', '2856.00', '街巷用地:面积 2856平方米...', '43.00', '福建武夷交通运输股份有限公司光泽分公司', '2017-09-12', '已成交'],
['6', '泉州晋江市-晋江市GY2017—7号', '7342.00', '工业用地(交通运输设备制造业:...', '315.00', '晋江市明尔盛机械配件有限公司', '2017-09-11', '已成交'],
['7', '泉州晋江市-晋江市GY2016—85号', '3334.00', '工业用地(纺织服装鞋帽制造业:...', '171.00', '晋江市金丝服装织造有限公司', '2017-09-11', '已成交'],
['8', '泉州晋江市-晋江市GY2017—16号', '31627.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍'],
['9', '泉州晋江市-晋江市GY2016—84号', '4726.00', '工业用地(纺织服装鞋帽制造业:...', '242.00', '泉州市雅蒂服装制造有限公司', '2017-09-11', '已成交'], ['10', '泉州晋江市-晋江市GY2017—6号', '5015.00', '工业用地(交通运输设备制造业:...', '215.00', '晋江志刚汽车配件制造有限公司', '2017-09-11', '已成交'], ['11', '泉州晋江市-晋江市GY2017—15号', '802.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍'])
>>> result[9]
['9', '泉州晋江市-晋江市GY2016—84号', '4726.00', '工业用地(纺织服装鞋帽制造业:...', '242.00', '泉州市雅蒂服装制造有限公司', '2017-09-11', '已成交']
>>> cur.execute(sql%result[9])
Traceback (most recent call last):
File "<pyshell#63>", line 1, in <module>
cur.execute(sql%result[9])
TypeError: not enough arguments for format string
...全文
3246 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
乔豆麻袋_ 2018-12-11
  • 打赏
  • 举报
回复
这样的话 数据库字段必须是varchar 请问 如何在数据库字段为int 或者 time的时候 也适用呢
mathdogggg 2018-09-17
  • 打赏
  • 举报
回复
引用 6 楼 qq_34621405 的回复:
[quote=引用 3 楼 xpresslink 的回复:]

>>> data = list(map(tuple, result))
>>> data
[('序号', '宗地号', '面积(平方米)', '土地用途及出让年限', '成交价(万元)', '竞得人', '成交时间', '状态'), ('1', '龙岩长汀县-2017G06', '4756.30', '公共设施用地:面积 4756....', '286.00', '中国移动通信集团福建有限公司龙岩分公司', '2017-09-14', '已成交'), ('2', '泉州永春县-2017-01号', '40865.00', '工业用地(通用设备制造业:面积...', '1048.00', '泉州市源福机械制造有限公司', '2017-09-13', '已成交'), ('3', '漳州常山开发区-2017(挂)1号', '937.91', '科教用地:面积 937.91平...', '48.00', '吴涵', '2017-09-13', '已成交'), ('4', '南平光泽县-GZG201711', '3077.00', '街巷用地:面积 3077平方米...', '46.00', '光泽县公共交通公司', '2017-09-12', '已成交'), ('5', '南平光泽县-GZG201710', '2856.00', '街巷用地:面积 2856平方米...', '43.00', '福建武夷交通运输股份有限公司光泽分公司', '2017-09-12', '已成交'), ('6', '泉州晋江市-晋江市GY2017—7号', '7342.00', '工业用地(交通运输设备制造业:...', '315.00', '晋江市明尔盛机械配件有限公司', '2017-09-11', '已成交'), ('7', '泉州晋江市-晋江市GY2016—85号', '3334.00', '工业用地(纺织服装鞋帽制造业:...', '171.00', '晋江市金丝服装织造有限公司', '2017-09-11', '已成交'), ('8', '泉州晋江市-晋江市GY2017—16号', '31627.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍'), ('9', '泉州晋江市-晋江市GY2016—84号', '4726.00', '工业用地(纺织服装鞋帽制造业:...', '242.00', '泉州市雅蒂服装制造有限公司', '2017-09-11', '已成交'), ('10', '泉州晋江市-晋江市GY2017—6号', '5015.00', '工业用地(交通运输设备制造业:...', '215.00', '晋江志刚汽车配件制造有限公司', '2017-09-11', '已成交'), ('11', '泉州晋江市-晋江市GY2017—15号', '802.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍')]
>>> cur.executemany(sql, data)

你好,最近我使用这个语法报错,,报错信息如下
raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1.00748912842339'', ''0'', ''0'', ''16.114739990234'', ''0.00759455235674977'', ' at line 1")
sql语句是 sql='''INSERT INTO aliyun_api ( CLDAS_PRS, CMPA_PREP, CLDAS_SSRA, CLDAS_TEMP,CLDAS_SHU, CLDAS_WIND,Time_Point,Position_Coordinate,Area) VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')'''[/quote]
不知道楼主还有没有在用这个了,我用血泪史告诉你,执行sql语句的那个变量替换,不要加引号……
直接这么写%s就好了……
qq_34621405 2017-12-06
  • 打赏
  • 举报
回复
引用 3 楼 xpresslink 的回复:

>>> data = list(map(tuple, result))
>>> data
[('序号', '宗地号', '面积(平方米)', '土地用途及出让年限', '成交价(万元)', '竞得人', '成交时间', '状态'), ('1', '龙岩长汀县-2017G06', '4756.30', '公共设施用地:面积 4756....', '286.00', '中国移动通信集团福建有限公司龙岩分公司', '2017-09-14', '已成交'), ('2', '泉州永春县-2017-01号', '40865.00', '工业用地(通用设备制造业:面积...', '1048.00', '泉州市源福机械制造有限公司', '2017-09-13', '已成交'), ('3', '漳州常山开发区-2017(挂)1号', '937.91', '科教用地:面积 937.91平...', '48.00', '吴涵', '2017-09-13', '已成交'), ('4', '南平光泽县-GZG201711', '3077.00', '街巷用地:面积 3077平方米...', '46.00', '光泽县公共交通公司', '2017-09-12', '已成交'), ('5', '南平光泽县-GZG201710', '2856.00', '街巷用地:面积 2856平方米...', '43.00', '福建武夷交通运输股份有限公司光泽分公司', '2017-09-12', '已成交'), ('6', '泉州晋江市-晋江市GY2017—7号', '7342.00', '工业用地(交通运输设备制造业:...', '315.00', '晋江市明尔盛机械配件有限公司', '2017-09-11', '已成交'), ('7', '泉州晋江市-晋江市GY2016—85号', '3334.00', '工业用地(纺织服装鞋帽制造业:...', '171.00', '晋江市金丝服装织造有限公司', '2017-09-11', '已成交'), ('8', '泉州晋江市-晋江市GY2017—16号', '31627.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍'), ('9', '泉州晋江市-晋江市GY2016—84号', '4726.00', '工业用地(纺织服装鞋帽制造业:...', '242.00', '泉州市雅蒂服装制造有限公司', '2017-09-11', '已成交'), ('10', '泉州晋江市-晋江市GY2017—6号', '5015.00', '工业用地(交通运输设备制造业:...', '215.00', '晋江志刚汽车配件制造有限公司', '2017-09-11', '已成交'), ('11', '泉州晋江市-晋江市GY2017—15号', '802.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍')]
>>> cur.executemany(sql, data)

你好,最近我使用这个语法报错,,报错信息如下
raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1.00748912842339'', ''0'', ''0'', ''16.114739990234'', ''0.00759455235674977'', ' at line 1")
sql语句是 sql='''INSERT INTO aliyun_api ( CLDAS_PRS, CMPA_PREP, CLDAS_SSRA, CLDAS_TEMP,CLDAS_SHU, CLDAS_WIND,Time_Point,Position_Coordinate,Area) VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')'''
混沌鳄鱼 2017-09-14
  • 打赏
  • 举报
回复

>>> data = list(map(tuple, result))
>>> data
[('序号', '宗地号', '面积(平方米)', '土地用途及出让年限', '成交价(万元)', '竞得人', '成交时间', '状态'), ('1', '龙岩长汀县-2017G06', '4756.30', '公共设施用地:面积 4756....', '286.00', '中国移动通信集团福建有限公司龙岩分公司', '2017-09-14', '已成交'), ('2', '泉州永春县-2017-01号', '40865.00', '工业用地(通用设备制造业:面积...', '1048.00', '泉州市源福机械制造有限公司', '2017-09-13', '已成交'), ('3', '漳州常山开发区-2017(挂)1号', '937.91', '科教用地:面积 937.91平...', '48.00', '吴涵', '2017-09-13', '已成交'), ('4', '南平光泽县-GZG201711', '3077.00', '街巷用地:面积 3077平方米...', '46.00', '光泽县公共交通公司', '2017-09-12', '已成交'), ('5', '南平光泽县-GZG201710', '2856.00', '街巷用地:面积 2856平方米...', '43.00', '福建武夷交通运输股份有限公司光泽分公司', '2017-09-12', '已成交'), ('6', '泉州晋江市-晋江市GY2017—7号', '7342.00', '工业用地(交通运输设备制造业:...', '315.00', '晋江市明尔盛机械配件有限公司', '2017-09-11', '已成交'), ('7', '泉州晋江市-晋江市GY2016—85号', '3334.00', '工业用地(纺织服装鞋帽制造业:...', '171.00', '晋江市金丝服装织造有限公司', '2017-09-11', '已成交'), ('8', '泉州晋江市-晋江市GY2017—16号', '31627.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍'), ('9', '泉州晋江市-晋江市GY2016—84号', '4726.00', '工业用地(纺织服装鞋帽制造业:...', '242.00', '泉州市雅蒂服装制造有限公司', '2017-09-11', '已成交'), ('10', '泉州晋江市-晋江市GY2017—6号', '5015.00', '工业用地(交通运输设备制造业:...', '215.00', '晋江志刚汽车配件制造有限公司', '2017-09-11', '已成交'), ('11', '泉州晋江市-晋江市GY2017—15号', '802.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍')]
>>> cur.executemany(sql, data)
qq_34621405 2017-09-14
  • 打赏
  • 举报
回复
引用 1 楼 zhmwang2008 的回复:
sql = "INSERT {} {} {} {} {} {} {} {}"
sql.format(*result[9])
你好,可以有什么方法把整个result都插入的吗?收集到的result不止九条数据,有几万条,可以不要循环几万次分别执行sql语句的吗?
张强1990 2017-09-14
  • 打赏
  • 举报
回复
sql = "INSERT {} {} {} {} {} {} {} {}"
sql.format(*result[9])
qq_34621405 2017-09-14
  • 打赏
  • 举报
回复
引用 3 楼 xpresslink 的回复:

>>> data = list(map(tuple, result))
>>> data
[('序号', '宗地号', '面积(平方米)', '土地用途及出让年限', '成交价(万元)', '竞得人', '成交时间', '状态'), ('1', '龙岩长汀县-2017G06', '4756.30', '公共设施用地:面积 4756....', '286.00', '中国移动通信集团福建有限公司龙岩分公司', '2017-09-14', '已成交'), ('2', '泉州永春县-2017-01号', '40865.00', '工业用地(通用设备制造业:面积...', '1048.00', '泉州市源福机械制造有限公司', '2017-09-13', '已成交'), ('3', '漳州常山开发区-2017(挂)1号', '937.91', '科教用地:面积 937.91平...', '48.00', '吴涵', '2017-09-13', '已成交'), ('4', '南平光泽县-GZG201711', '3077.00', '街巷用地:面积 3077平方米...', '46.00', '光泽县公共交通公司', '2017-09-12', '已成交'), ('5', '南平光泽县-GZG201710', '2856.00', '街巷用地:面积 2856平方米...', '43.00', '福建武夷交通运输股份有限公司光泽分公司', '2017-09-12', '已成交'), ('6', '泉州晋江市-晋江市GY2017—7号', '7342.00', '工业用地(交通运输设备制造业:...', '315.00', '晋江市明尔盛机械配件有限公司', '2017-09-11', '已成交'), ('7', '泉州晋江市-晋江市GY2016—85号', '3334.00', '工业用地(纺织服装鞋帽制造业:...', '171.00', '晋江市金丝服装织造有限公司', '2017-09-11', '已成交'), ('8', '泉州晋江市-晋江市GY2017—16号', '31627.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍'), ('9', '泉州晋江市-晋江市GY2016—84号', '4726.00', '工业用地(纺织服装鞋帽制造业:...', '242.00', '泉州市雅蒂服装制造有限公司', '2017-09-11', '已成交'), ('10', '泉州晋江市-晋江市GY2017—6号', '5015.00', '工业用地(交通运输设备制造业:...', '215.00', '晋江志刚汽车配件制造有限公司', '2017-09-11', '已成交'), ('11', '泉州晋江市-晋江市GY2017—15号', '802.00', '工业用地(造纸及纸制品业:面积...', '0.00', ' ', ' ', '流拍')]
>>> cur.executemany(sql, data)
哟西,好厉害啊,谢谢哇!请问对于python这些基础知识我该看什么书呢?前两天看了一本python基础教程,根本没有这些知识点
张强1990 2017-09-14
  • 打赏
  • 举报
回复
for i in results:
  execute(sql.format(*i)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧