我不确定我是否正确地表达了这一点,但是当从一个数据库查询数据并将其插入另一个数据库时psycopg2,在某些时候脚本会分解数据,并将行作为列插入(即每个数据库打印一个字符)每行列)如下:
name | id_2 | id_1 | blank | data
--------------+------------+-------------+--------------+--------------
A | 1 | a | | {json: data}
B | a | 1 | | {json: data}
C | 2 | b | | {json: data}
D | b | 2 | | {json: data}
E | 3 | c | | {json: data}
F | c | 3 | | {json: data}
我希望表格如下所示:
name | id_2 | id_1 | blank | data
--------------+------------+-------------+--------------+--------------
ABCDEF | 1a2b3c | a1b2c3 | | {json: data}
我必须生成的代码是:
import psycopg2, uuid
id_1 = str(uuid.uuid4())
conn1 = psycopg2.connect(
host='host',
database=db1,
user='user',
password='password')
conn2 = psycopg2.connect(
host='host',
database=db2
user='user',
password='password')
def generate_data(id_1, name, id_2):
data = {
"tag": name,
"id_2": id_2,
"id_1": id_1,
"rand_int": random.randint(0, 86400),
"rand_uni_1": str(round(random.uniform(0.0, 8.0), 2)),
"rand_uni_2": str(round(random.uniform(0.0, 16.0), 2)),
"digi": "",
"point_type": random.randint(0, 1),
"garbage_data": "garbage_data"
}
data_str = str(json.dumps(data).replace("'", "''"))
add_data(name, id_2, id_1, data_str)
我使用 print 语句来验证数据是否显示为应插入表中。我在隔离与此代码相关的另一个问题时发现了这一点jsonb,我将在接下来发布该问题。我对 SQL 和 Python(以及 psycopg2)比较陌生,因为我来自 QA,所以非常感谢任何帮助!
繁星淼淼
相关分类