簡體   English   中英

如何也將JSON文件加載到PSQL數據庫

[英]How to load the JSON file too the PSQL database

我有一個JSON文件。 現在,我需要將JSON數據加載到我的PSQL數據庫中。

到目前為止,我嘗試了這個

import psycopg2
import json
with open('new.json') as f:
    data = f.read()
    dd = json.loads(data)
    conn = psycopg2.connect(database="newdb", user = "postgres",  password = "postgres",host = "127.0.0.1", port = "5432")

    print "Opened database successfully"

    cur = conn.cursor()

    cur.execute(''' CREATE TABLE jsontable(SUM INT NOT NULL,
                                      APP  CHAR[30] NOT NULL,
                                      ID INT NOT NULL,
                                      DOMAINNAME TEXT NOT NULL,
                                      DOMAINID INT NOT NULL);''')
    print "Table Created successfully"


    cur.execute('''INSERT INTO jsontable(data)
                   VALUES(%s)
                ''',
                     (data, str(dd['sum'],str(dd['app'],str(dd['id'],str(dd['Domain_name'],str(dd['Domain_Id'])))

print ("Data Entered successfully")
conn.commit()
conn.close()

請提供一些示例,說明如何將JSON文件數據傳遞到數據庫

我個人喜歡asyncpg,因為它是完全異步的,尤其是在使用Python 3.x的情況下,實際上,您需要做的所有事情就是在sync命令之前等待。

import asyncpg
import json
with open('new.json') as f:
    data = f.read()
    dd = json.loads(data)
    conn = await asyncpg.connect(database="newdb", user = "postgres",  password = "postgres",host = "127.0.0.1", port = "5432")    
    print "Opened database successfully"
    await con.execute(''' CREATE TABLE jsontable(SUM INT NOT NULL,
                                      APP  CHAR[30] NOT NULL,
                                      ID INT NOT NULL,
                                      DOMAINNAME TEXT NOT NULL,
                                      DOMAINID INT NOT NULL);''')
    print "Table Created successfully"


    await con.execute('''INSERT INTO jsontable(SUM, APP, ID, DOMAINNAME, DOMAINID)
                   VALUES($1, $2, $3, $4, $5)
                ''',(str(dd['sum'],str(dd['app'],str(dd['id'],str(dd['Domain_name'],str(dd['Domain_Id'])))

print ("Data Entered successfully")
await conn.commit()
await conn.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM