日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python將Dataframe格式的數據寫入opengauss數據庫并查詢_python

作者:摸魚的胖七七 ? 更新時間: 2022-06-12 編程語言

一、將數據寫入opengauss

前提準備:

成功opengauss數據庫,并創建用戶jack,創建數據庫datasets。

數據準備:

所用數據以csv格式存在本地,編碼格式為GB2312。

數據存入:

開始hello表未存在,那么執行程序后,系統會自動創建一個hello表(這里指定了名字為hello);

若hello表已經存在,那么會增加數據到hello表。列名需要與hello表一一對應。

# 加載必要的python庫
from sqlalchemy import create_engine
import pandas as pd
?
# 從本地讀入數據
df = pd.read_csv("E:/jiema.csv",low_memory=False,encoding='gb2312')
?
#創建數據庫引擎
#create_engine說明:driver://user:password@host:port/dbname
engine = create_engine('postgresql://jack:gauss@111@192.168.80.130:26000/datasets')
?
#寫入數據
try:
? ? df.to_sql('hello',engine,index=False,if_exists='append') ?#hello為創建的數據庫表名字
except Exception as e:
? ? print(e)

使用navicat查看效果:

二、python條件查詢opengauss數據庫中文列名的數據

問題:

由于項目要求,數據庫中的列名都是以中文命名的,導致在后期查詢的時候出現了很多問題。

解決方法:

?整條SQL語句需要用單引號包裹,中文列名需要用雙引號包裹起來。

import psycopg2
?
def dataFromDB(sql):
? ? # 連接數據庫
? ? conn = psycopg2.connect(database='datasets', user='jack', password='gauss@111', host='192.168.80.130', port='26000')
? ? curs = conn.cursor()
?
? ? # 編寫Sql,只取前兩行數據
? ? # sql = 'select * from table_name limit 2'
?
? ? # 數據庫中執行sql命令
? ? curs.execute(sql)
? ? # 獲得數據
? ? data = curs.fetchall()
? ? print(data)
?
? ? # 關閉指針和數據庫
? ? curs.close()
? ? conn.close()
?
sql ='SELECT "遙測參數2", "遙測參數2路溫度" from source2decode where "工程參數.源地址" =26 '
?
dataFromDB(sql)

原文鏈接:https://blog.csdn.net/qq_38029916

欄目分類
最近更新