从 Python 将随机数据存储在 Postgres 数据库中
Posted
技术标签:
【中文标题】从 Python 将随机数据存储在 Postgres 数据库中【英文标题】:Store random data in Postgres database from Python 【发布时间】:2017-02-27 06:05:54 【问题描述】:我有这种形式的数据:
data='["info": "No", "uid": null, "links": ["";, ""], "task_id": 1, "created": "2017-02 -15T09:07:09.068145", "finish_time": "2017-02-15T09:07:14.620174", "calibration": null, "user_ip": null, "timeout": null, "project_id": 1, "id ": 1]', 'uuid': u'abc:def:ghi'
我想将此数据存储在 Postgres 数据库中。我有这个问题:
quer1='UPDATE table_1 SET data = "%s" WHERE id = "%s" '%(data1,id)
db_session.execute(quer1)
db_session.commit()
这个查询会执行,但不会在数据库中存储任何内容。数据的数据类型是“文本”。我无法指出我错在哪里。请帮忙。
已编辑:: 我将查询更新为:
quer1='UPDATE table_1 SET data = "%s" WHERE hitid = %s '%(data1,id)
【问题讨论】:
id
列的数据类型是什么?您正在使用的id
的值是多少?
你的 data
变量不是一个工作 Python 代码 sn-p。总的来说,这似乎不是一个完整的、最小的例子。
@MattMS id 的数据类型是 varchar。
正如@groteworld 提到的,请使用您用于data
的实际值更新您的问题。
@MattMS 更新
【参考方案1】:
首先,永远不要使用%
或str.format
将值插入到您的查询中!!!
假设您使用的是 psycopg2,您的查询应使用以下格式:
db_session.execute('UPDATE table_1 SET data = %s WHERE id = %s', (data1, id))
正如@groteworld 所提到的,data = 1,2,'3',[4],(5),6
不是有效的 Python。
我假设您在实际代码中使用了正确的 data
值。
【讨论】:
以上是关于从 Python 将随机数据存储在 Postgres 数据库中的主要内容,如果未能解决你的问题,请参考以下文章