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"}