写代码时遇到了个小坑,使用excute向数据库插入字符串时"."和":"一直报错。
查阅官方文档,我们可以看到官方的操作:
cur.execute("INSERT INTO foo VALUES (%s)", "bar") # WRONG
cur.execute("INSERT INTO foo VALUES (%s)", ("bar")) # WRONG
cur.execute("INSERT INTO foo VALUES (%s)", ("bar",)) # correct
cur.execute("INSERT INTO foo VALUES (%s)", ["bar"]) # correct`
不直接使用python提供的插值语法,而是将元组作为参数传入!并且在最后一个数据后面要添加一个","。才能保证元组正确识别。
Warning
Never, never, NEVER use Python string concatenation (+) or string parameters interpolation (%) to pass variables to a SQL query string. Not even at gunpoint.
警告
永远不要使用python字符串连接符号“+”或者变量插值符号“%”对SQL查询语句传参。即使有人用枪指着你也不要。
官方文档可以在这里查看:
https://www.psycopg.org/docs/usage.html#adaptation-of-python-values-to-sql-types
在insert into 的
时
候,
报错
语法错误,某个字符附近,这个
时
候,你就要看看是不是有特殊字符,我的
sql
中存在单引号这样的字符,报的错。在
SQL
中,一个单引号由另一个单引号转义,只要用'单引号转义就可以了,我在postger
sql
,dm,kingbase都测试过,可以解决问题。
(
psycopg2
.errors.SyntaxError) syntax error at or near "\"
"Details": "Example: Replace \'\'John\'\'s...
inser
该系列暂
时
总共有3篇文章,连接如下
【
python
】爬虫篇:
python
连接
postgresql
(一):https://blog.csdn.net/lsr40/article/details/83311860
【
python
】爬虫篇:
python
对于html页面的解析(二):htt...
之前写过
python
连接
postgresql
的方法,今天在网上详细总结了一下
psycopg2
的使用方法
使用*.ini文件(
python
的configparser包可以解析这种类型的配置文件)保存
数据
库连接的配置信息。
使用
psycopg2
.connect函数获得connection对象。
使用connection对象创建cursor对象。
使用cursor对象执行
sql
语句提交或者回滚transaction。
使用cursor对象fetchone获得查询结果。
关闭cursor对象和connec
$ apt-get install
postgresql
安装好之后,
PostgreSQL
会创建一个名为postgres的系统用户,以及一个同样名字的
数据
库管理员角色,以及一个同样名字的
数据
库。
通过cat /etc/passwd列出系统中所
psycopg2
数据
批量
插入
问题记录
由于最近用到greenplum,需要进行一些
数据
库批量
插入
操作,由于其操作方式与
postgresql
相同,因此采用的是
psycopg2
(2.8.4) 做底层驱动。
由于
数据
量较大,所以采用了批量
插入
操作,也就是其自带的executemany,从名字来看会给我们其真的是批量
插入
的错觉(搜了下,大部分搜索结果也是说批量
插入
使用该操作,坑~(⊙﹏⊙)),但是,实际...
导入与创建连接
import
psycopg2
conn =
psycopg2
.connect(database='dbschool', user='postgres', password='admin', host='127.0.0.1', port='5432')
cur = conn.cursor()
connection
connection提供了常用的
数据
库操作:
1)使用
psycopg2
-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe安装,下载地址:http://vdisk.weibo.com/s/Cd8pPaw56Ozys
直接运行exe,不出错误,运行上边代码验证代码无错误,基本算是安装完成了。
2)怎么卸载?
2.1)找到安装目录:C:\
Python
27,发现下边...
在使用cmd安装
psycopg2
时
出现
报错
可能是由于以下几种原因:
1. 缺少依赖项:
psycopg2
是一个基于
Python
的
PostgreSQL
数据
库适配器,在安装之前,需要确保已经正确安装了
Python
和相应的
PostgreSQL
驱动。如果缺少依赖项,可以先安装相应的依赖项再进行安装。
2. 环境变量配置错误:在安装之前,需要先将
Python
和
PostgreSQL
的可执行文件路径添加到系统的环境变量中,确保cmd能够正确识别这些命令。可以在"我的电脑"->"属性"->"高级系统设置"中找到"环境变量",在"系统变量"中添加或修改"Path"变量。
3. 代理问题:如果网络使用了代理,可能会导致cmd无法正常连接到网络以下载安装包。可以尝试使用代理服务器,或者通过设置代理环境变量来解决此问题。
4. 安装源问题:在cmd中通过pip进行安装
时
,默认使用的是
Python
官方的安装源。但由于网络原因,可能无法正常连接。可以尝试使用其他镜像源,例如豆瓣源、清华源等,可以通过在cmd中执行命令"pip install
psycopg2
-i https://pypi.douban.com/simple"来使用豆瓣源进行安装。
总之,要解决cmd安装
psycopg2
报错
,需要检查是否有缺少依赖项、正确配置环境变量、排除网络代理问题,并选择合适的安装源。希望以上的解答能对您有所帮助。
### 回答2:
在使用cmd安装
psycopg2
时
,如果出现
报错
,可能是由于以下几个原因:
1. 版本不兼容:
psycopg2
有一个特定的版本要求,可能与您的
Python
版本不兼容。您可以尝试查看
psycopg2
的官方文档,确认与您当前使用的
Python
版本兼容的
psycopg2
版本,并尝试安装兼容版本的
psycopg2
。
2. 缺少依赖项:
psycopg2
可能依赖于其他库或软件包。请确认您是否已经安装了这些依赖项。例如,在Windows系统上,您可能需要先安装Visual C++ Build Tools。
3. 网络问题:如果您使用的是在线安装方式,可能由于网络问题导致无法下载或安装
psycopg2
。您可以尝试更改下载源或等待网络恢复正常后再次尝试安装。
4. 操作系统不兼容:有
时
,
psycopg2
可能不支持您当前使用的操作系统。请确保您的操作系统与
psycopg2
的兼容要求一致。
如果您仍然无法解决问题,我建议您查看
报错
信息,并尝试在错误信息中搜索相关解决方案。目前没有提供具体
报错
信息,因此难以给出更具体的解答。但我希望上述的几点可以帮助您理解并解决您遇到的问题。
### 回答3:
在使用cmd安装
psycopg2
时
,如果出现错误,可能是由于以下原因引起的。
1. 缺少依赖:
psycopg2
是一个用于连接
PostgreSQL
数据
库的
Python
库,它依赖于
PostgreSQL
的开发包。如果你的系统中没有安装
PostgreSQL
或者相关的开发包,那么在安装
psycopg2
时
就会
报错
。你可以尝试去
PostgreSQL
官网下载并安装对应版本的开发包。
2.
Python
环境配置问题:有
时
候,cmd可能无法正确找到
Python
的安装路径,从而导致无法找到
psycopg2
的安装文件。你可以尝试在cmd中手动进入
Python
的安装路径,然后再试着安装
psycopg2
。
3. 版本兼容性问题:有
时
候,
psycopg2
的版本与你的
Python
版本不兼容,导致安装
报错
。你可以尝试更新
Python
到最新的稳定版本,然后再重新安装
psycopg2
。
4. 网络问题:有
时
候,由于网络问题,cmd无法正确下载
psycopg2
的安装文件,从而导致安装失败。你可以尝试连接一个良好的网络,然后再重新安装
psycopg2
。
如果你在尝试这些方法之后仍然无法解决问题,建议你在安装过程中查看
报错
信息,以便更好地定位问题所在。另外,你也可以尝试在
Python
的交互环境中使用pip命令来安装
psycopg2
,因为有
时
候它比cmd更容易解决一些依赖问题。
[中文翻译]The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode