python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫(kù)并查詢
一、將數(shù)據(jù)寫入opengauss
前提準(zhǔn)備:
成功opengauss數(shù)據(jù)庫(kù),并創(chuàng)建用戶jack,創(chuàng)建數(shù)據(jù)庫(kù)datasets。
數(shù)據(jù)準(zhǔn)備:
所用數(shù)據(jù)以csv格式存在本地,編碼格式為GB2312。
數(shù)據(jù)存入:
開始hello表未存在,那么執(zhí)行程序后,系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)hello表(這里指定了名字為hello);
若hello表已經(jīng)存在,那么會(huì)增加數(shù)據(jù)到hello表。列名需要與hello表一一對(duì)應(yīng)。
# 加載必要的python庫(kù) from sqlalchemy import create_engine import pandas as pd ? # 從本地讀入數(shù)據(jù) df = pd.read_csv("E:/jiema.csv",low_memory=False,encoding='gb2312') ? #創(chuàng)建數(shù)據(jù)庫(kù)引擎 #create_engine說(shuō)明:driver://user:password@host:port/dbname engine = create_engine('postgresql://jack:gauss@111@192.168.80.130:26000/datasets') ? #寫入數(shù)據(jù) try: ? ? df.to_sql('hello',engine,index=False,if_exists='append') ?#hello為創(chuàng)建的數(shù)據(jù)庫(kù)表名字 except Exception as e: ? ? print(e)
使用navicat查看效果:
二、python條件查詢opengauss數(shù)據(jù)庫(kù)中文列名的數(shù)據(jù)
問(wèn)題:
由于項(xiàng)目要求,數(shù)據(jù)庫(kù)中的列名都是以中文命名的,導(dǎo)致在后期查詢的時(shí)候出現(xiàn)了很多問(wèn)題。
解決方法:
整條SQL語(yǔ)句需要用單引號(hào)包裹,中文列名需要用雙引號(hào)包裹起來(lái)。
import psycopg2 ? def dataFromDB(sql): ? ? # 連接數(shù)據(jù)庫(kù) ? ? conn = psycopg2.connect(database='datasets', user='jack', password='gauss@111', host='192.168.80.130', port='26000') ? ? curs = conn.cursor() ? ? ? # 編寫Sql,只取前兩行數(shù)據(jù) ? ? # sql = 'select * from table_name limit 2' ? ? ? # 數(shù)據(jù)庫(kù)中執(zhí)行sql命令 ? ? curs.execute(sql) ? ? # 獲得數(shù)據(jù) ? ? data = curs.fetchall() ? ? print(data) ? ? ? # 關(guān)閉指針和數(shù)據(jù)庫(kù) ? ? curs.close() ? ? conn.close() ? sql ='SELECT "遙測(cè)參數(shù)2", "遙測(cè)參數(shù)2路溫度" from source2decode where "工程參數(shù).源地址" =26 ' ? dataFromDB(sql)
到此這篇關(guān)于python將Dataframe格式的數(shù)據(jù)寫入opengauss數(shù)據(jù)庫(kù)并查詢的文章就介紹到這了,更多相關(guān)python將數(shù)據(jù)寫入opengauss內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中for循環(huán)的多種使用實(shí)例
for語(yǔ)句是Python中執(zhí)行迭代的兩個(gè)語(yǔ)句之一,另一個(gè)語(yǔ)句是while,下面這篇文章主要給大家介紹了關(guān)于python中for循環(huán)的多種使用方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09Python?Asyncio中Coroutines,Tasks,Future可等待對(duì)象的關(guān)系及作用
這篇文章主要介紹了Python?Asyncio中Coroutines,Tasks,Future可等待對(duì)象的關(guān)系及作用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下2022-06-06python函數(shù)聲明和調(diào)用定義及原理詳解
這篇文章主要介紹了python函數(shù)聲明和調(diào)用定義及原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python引入多個(gè)模塊及包的概念過(guò)程解析
這篇文章主要介紹了Python引入多個(gè)模塊及包的概念過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Django模板標(biāo)簽{% for %}循環(huán),獲取制定條數(shù)據(jù)實(shí)例
這篇文章主要介紹了Django模板標(biāo)簽{% for %}循環(huán),獲取制定條數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05python的setattr函數(shù)實(shí)例用法
在本篇文章里小編給大家整理了一篇關(guān)于python的setattr函數(shù)實(shí)例用法的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2020-12-12python中用cantools和can工具包解析blf文件的方法
這篇文章主要給大家介紹了關(guān)于python中用cantools和can工具包解析blf文件的相關(guān)資料,blf數(shù)據(jù)不像mf4那樣自帶信號(hào)數(shù)據(jù)庫(kù),因?yàn)樗怯浫罩居玫?一般情況下要盡可能的小,需要的朋友可以參考下2023-09-09