1. 程式人生 > >python3操作psycopg2/其它SQL資料庫時查詢資料以字典格式返回

python3操作psycopg2/其它SQL資料庫時查詢資料以字典格式返回

    在python3中,操作pymysql或者psycopg2等SQL資料庫進行資料查詢時,它這個庫裡面好像並沒有像python2一樣在底層自動幫我們迴圈轉換好以字典鍵值對的格式給我們返回資料(可能是我沒找到),而是在列表裡面以元組型別直接把值返回過來,這樣就導致我們在取值的時候只能通過下標去取,很容易出錯,非常的不方便。針對於此,我簡單封裝了一個方法,以psycopg2為例,在執行查詢語句時,將結果轉換成字典型別返回。demo如下:

import psycopg2

def get_data(database_info,sql):
    conn = psycopg2.connect(database=database_info["database"], 
                            user=database_info["user"],
                            password=database_info["password"],
                            host=database_info["host"], 
                            port=database_info["port"])
    cur = conn.cursor()
    try:
        cur.execute(sql)
        #獲取表的所有欄位名稱
        coloumns = [row[0] for row in cur.description]
        result = [[str(item) for item in row] for row in cur.fetchall()]
        return [dict(zip(coloumns, row)) for row in result]
    except Exception as ex:
        print(ex)
    finally:
        conn.close()
#資料庫連線資訊
database_info={
    "database":"test_base_inf",
    "user":"data_inf_root",
    "password":"BASE_root~589",
    "host":"192.168.12.101",
    "port":"2345"
}
sql="select * from nric_affiliation"
data=get_data(database_info,sql)
for item in data:
    print(item)

執行返回格式如圖:

這樣就變成了以欄位鍵值對的格式了

相關推薦

python3操作psycopg2/其它SQL資料庫查詢資料字典格式返回

    在python3中,操作pymysql或者psycopg2等SQL資料庫進行資料查詢時,它這個庫裡面好像並沒有像python2一樣在底層自動幫我們迴圈轉換好以字典鍵值對的格式給我們返回資料(可能是我沒找到),而是在列表裡面以元組型別直接把值返回過來,這樣就導致我們在取

python專案篇-從資料庫獲取資料Json格式返回前端資料視覺化方式顯示

views.py: def adminEchartIncome(request): ret = models.incomeAccount.objects.all().order_by("dayIncome","id") # ret = serialize("json

自己寫的個C#(ASP.NET)連線SQL資料庫執行查詢和修改操作的類

這是今天花了一下時間編寫的一個ASP.NET(C# ,Framework3.5)連線SQL資料庫,執行SQL語句和獲取查詢返回資料集的類。 寫完後自己感覺,肯定這東西狀態還很原始,很多高階的需求還應對不上。目前能做的恐怕還只是基本操作,而且實現的還不一定怎麼好。 不管怎樣,

Java連線SQL資料庫碰到com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有語法錯誤。

在寫一個小東西的時候遇到了這個問題,不知道怎麼解決。 希望大神們能幫忙解決下。 com.microsoft.sqlserver.jdbc.SQLServerException: ')' 附近有語法錯誤。     at com.microsoft.sqlserv

python3-操作SQLite、建立表、新增資料查詢資料

SQLlte資料型別 SQLite能儲存什麼樣的資料型別 ?? 可以儲存空值、整數、浮點數、字串和blob。 什麼是blob ?? 是二進位制大物件。例如圖片、音樂、zip檔案。 什麼是遊

【java 操作mysql】java連線mysql資料庫查詢資料

做java開發不可避免要處理資料庫,所以這裡寫篇用jdbc來連線mysql的文章,java是一種高效能,通用的語言 。這使得它適合於編寫高效的ETL生產程式碼和計算密集型的機器學習演算法。 主要內容包括: 1、java連線mysql 2、java查詢my

JDBC操作資料庫查詢資料

以資料庫中查詢圖書資訊,並將資訊顯示在jsp頁面當中為例,下面貼上程式碼片段: (1)在index.jsp頁面程式碼body中只要新增如下一段程式碼: <a href="FindServlet">檢視所有圖書</a> (2)FindServlet.j

Python3 configparser值為多行配置文件書寫格式

odin import color 技術分享 imp detail bold png VM 一、說明 一般而言ini配置文件鍵值對都是一行就完事了,但有時候我們想配置的值就是由多行組成,這裏說明此時配置格式該如何書寫。 二、書寫格式 如果值為多行,那麽在第一行外的後續所

thinkphp 3.2連結Oracle資料庫查詢資料

ennnn,換工作了,開始用新的東西了,最近就是呼叫nc介面,資料庫是Oracle,首先先把資料查出來,這個比較簡單。 在網上看的其他的方法都是改資料庫配置檔案,然後需要修改tp核心的一個類檔案,比較繁瑣, 現在教你一個超級簡單的方法,不需要改任何地方,自己寫就行了 public function

Python oracle資料庫查詢結果字典形式儲存,取多條結果記錄數的實現

方法: def executeSQL(self,sql,params): conn = self.connectDB() conn = self.cursor try: self.r = conn.execute(sql,params) s

C#連線SQL Server並查詢資料

用C#連線本地SQL Server 查詢資訊 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Task

資料庫查詢資料展示到listview上的案例

編寫一個從資料庫裡查詢資料展示到listview上的案例 執行結果:點選find按鈕,會將資料庫中新增的資料顯示在List View上 結果如下: 建立如圖所示: 程式碼如下: Perso

破解微信資料庫查詢資料上傳伺服器

            Cursor c1 = db.rawQuery("select * from rcontact where username not like 'gh_%' and verifyFlag<>24 and verifyFlag<>29 and verifyFlag

Sql資料庫中匯入資料

 利用一個簡單的ASP小程式,為SqlServer資料庫中匯入文字文件的資料資料 在前臺的頁面上新增一個TextBox控制元件TextMode屬性設定為MultiLine,再在下面新增一個LinkButton控制元件(Button控制元件也是可以的),然後開始寫它的單擊事件

資料庫查詢資料並顯示到datagridview中的兩種方法

第一種方法:利用SqlDataAdapter的Fill()方法,                      優點:可以不用考慮資料庫表中每一列的資料型別,將資料一次性匯入到表中;                      缺點:不能在查詢過程中編輯查詢的資料 strin

spark-sql 集合hive查詢資料執行日誌

[[email protected] spark]# spark-sql --master spark://hadoop1:7077,hadoop2:7077 --executor-memory 1g --total-executor-cores 2 --driv

python查詢mysql字典返回

asc sel 字典 print ict use spider pymysql host # *_*coding:utf-8 *_* import pymysql conn = pymysql.connect(host=‘192.168.33.10‘, user=‘ro

專案總結:每隔5分鐘從資料庫拉取資料轉為Json格式通過WebService從客戶端傳送至服務端

   第一次接手需求寫的小專案,過程也有點坎坷,以此記錄總結編碼過程中遇到的問題。    專案背景:本次寫的是一個小模組,主要為客戶端,作用是每隔5分鐘從資料庫拉取資料傳送至服務端。本次專案採用的是spring3+Quartz+JdbcTemplate+J

資料庫時間儲存 - java8時間如何固定格式返回給前端

資料庫時間為什麼存時間使用 date 和 datetime ? 1、因為如果使用varchar來儲存年月日,那麼需要10個位元組,而date型別只需要4個位元組,而datetime型別也只需要8個位元組,都小於varchar型別; 2、在進行查詢、比較時,由於date和datetime本

資料庫中匯出資料成Dataframe格式兩種方法效率比較

方法1: import pymysql import pandas as pd import time import xlrd first = time.time() #在資料庫中操作150s,在python中操作320s #方法1 con = pymysql.connect(host="