Python 将 json 插入到 Postgres
Python insert json to Postgres
我正在将 json 数据插入 jsonb 列。当我使用 python 通过从文件读取来执行插入时,数据作为字符串插入,但是当我通过将 json 分配给变量(在下面评论)直接插入时,它作为对象插入。我在下面做错了什么?
import json
import psycopg2
data = open('C:\xx\json\. \temp1.json').read()
my_json = json.dumps(data)
connection = psycopg2.connect(user =
"xxxxx",
password =
"xxxxx",
host = "exx",
port = "54xx",
database =
"dxxx")
cursor = connection.cursor()
insert_query = "insert into gna (data) values (%s)"
cursor.execute(insert_query, (my_json,))
connection.commit()
count = cursor.rowcount
print (count,
"Record inserted successfully into xx table")
你逃脱了你的 json :)
data = open('C:\xx\json\. \temp1.json').read()
是一个 json 字符串。您可以将其传递给 postgres,只要您的文件确实包含 json 字符串,它就应该被解释为 json。
my_json = json.dumps(data)
数据是一个字符串。如果你转储一个字符串,你会明确地转义它说 "this is not a json object"
import json
from io import StringIO
f = StringIO('{"key": "value"}')
data = f.read()
print(data) # {"key": "value"}
data = json.dumps(data)
print(data) # "{\"key\": \"value\"}"
data = json.dumps({"key": "value"})
print(data) # {"key": "value"}
我正在将 json 数据插入 jsonb 列。当我使用 python 通过从文件读取来执行插入时,数据作为字符串插入,但是当我通过将 json 分配给变量(在下面评论)直接插入时,它作为对象插入。我在下面做错了什么?
import json
import psycopg2
data = open('C:\xx\json\. \temp1.json').read()
my_json = json.dumps(data)
connection = psycopg2.connect(user =
"xxxxx",
password =
"xxxxx",
host = "exx",
port = "54xx",
database =
"dxxx")
cursor = connection.cursor()
insert_query = "insert into gna (data) values (%s)"
cursor.execute(insert_query, (my_json,))
connection.commit()
count = cursor.rowcount
print (count,
"Record inserted successfully into xx table")
你逃脱了你的 json :)
data = open('C:\xx\json\. \temp1.json').read()
是一个 json 字符串。您可以将其传递给 postgres,只要您的文件确实包含 json 字符串,它就应该被解释为 json。
my_json = json.dumps(data)
数据是一个字符串。如果你转储一个字符串,你会明确地转义它说 "this is not a json object"
import json
from io import StringIO
f = StringIO('{"key": "value"}')
data = f.read()
print(data) # {"key": "value"}
data = json.dumps(data)
print(data) # "{\"key\": \"value\"}"
data = json.dumps({"key": "value"})
print(data) # {"key": "value"}