第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

psycopg2 將行作為列插入

psycopg2 將行作為列插入

揚(yáng)帆大魚 2023-12-12 14:54:44
我不確定我是否正確地表達(dá)了這一點(diǎn),但是當(dāng)從一個數(shù)據(jù)庫查詢數(shù)據(jù)并將其插入另一個數(shù)據(jù)庫時psycopg2,在某些時候腳本會分解數(shù)據(jù),并將行作為列插入(即每個數(shù)據(jù)庫打印一個字符)每行列)如下:     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, uuidid_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 語句來驗證數(shù)據(jù)是否顯示為應(yīng)插入表中。我在隔離與此代碼相關(guān)的另一個問題時發(fā)現(xiàn)了這一點(diǎn)jsonb,我將在接下來發(fā)布該問題。我對 SQL 和 Python(以及 psycopg2)比較陌生,因為我來自 QA,所以非常感謝任何幫助!
查看完整描述

1 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗 獲得超11個贊

今天早上站會后,我聯(lián)系了我們的一些開發(fā)人員,并解決了這個問題,如果不清楚的話,這就是數(shù)據(jù)如何輸入數(shù)據(jù)庫的方式,如上所述。


這里的問題在于線路cur.executemany(insert_data, zip(name_rec, id_2_rec, id_1_rec, data_rec))- 更具體地說是executemany方法和zip()功能。由于該zip()函數(shù)返回一個 zip 對象,它是一個元組迭代器,其中每個傳遞的迭代器中的第一項(以及所有后續(xù)項)都配對在一起,并且該executemany方法準(zhǔn)備數(shù)據(jù)庫操作(查詢或命令)并針對所有參數(shù)執(zhí)行它在序列 seq_of_params 中找到的序列或映射,這導(dǎo)致數(shù)據(jù)逐個字符地輸入到新表中。通過將行更改為來解決此問題,cur.execute(insert_data, (name_rec, id_2_rec, id_1_rec, data_rec))現(xiàn)在我的數(shù)據(jù)按應(yīng)有的方式顯示,即


     name     | id_2       | id_1        | blank        | data

--------------+------------+-------------+--------------+--------------

 ABCDEF       | 1a2b3c     | a1b2c3      |              | {json:data}

對于混亂的代碼,我深表歉意,如果我最初沒有正確地闡明這個問題——我在音樂學(xué)校上學(xué),大約 2.5 年前作為 QA 進(jìn)入這個領(lǐng)域,沒有任何經(jīng)驗,所以這對我來說仍然是相對較新的。


查看完整回答
反對 回復(fù) 2023-12-12
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號