最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python操作數(shù)據(jù)庫(kù)獲取結(jié)果之fetchone和fetchall的區(qū)別說(shuō)明

 更新時(shí)間:2021年04月09日 08:36:48   作者:蒲公英上的塵埃  
這篇文章主要介紹了python操作數(shù)據(jù)庫(kù)獲取結(jié)果之fetchone和fetchall的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

每次使用python獲取查詢結(jié)果的時(shí)候,都會(huì)糾結(jié)一段時(shí)間到底用fetchone和fetchall,用不好容易報(bào)錯(cuò),關(guān)鍵在于沒(méi)有搞清楚它們之間的區(qū)別和使用場(chǎng)景。

fetchone與fetchall區(qū)別

環(huán)境:python3中

fetchone

不管查詢結(jié)果是多條數(shù)據(jù)還是單條數(shù)據(jù),使用fetchone得到的始終是一個(gè)元組。

如果查詢結(jié)果是單條數(shù)據(jù):fetchone得到的單條數(shù)據(jù)的元組;

如果查詢結(jié)果是多條數(shù)據(jù):fetchone默認(rèn)是結(jié)果中的第一條數(shù)據(jù)構(gòu)成的元組;

這就決定了如果需要取元組中的數(shù)值,需要使用cur.fetchone[0]

fetchall

不管查詢結(jié)果是多條數(shù)據(jù)還是單條數(shù)據(jù),使用fetchall得到的始終是一個(gè)由元組組成的列表。

如果查詢結(jié)果是單條數(shù)據(jù):fetchall得到的是由單個(gè)元組組成的列表,列表內(nèi)是有單條數(shù)據(jù)組成的元組,即列表包含元組;

如果查詢結(jié)果是多條數(shù)據(jù):fetchall得到的是由多個(gè)元組組成的列表;

這就決定了如果需要取元組中的數(shù)值,需要使用cur.fetchone[0][0]

使用場(chǎng)景

一般來(lái)說(shuō),查詢結(jié)果集是單條數(shù)據(jù)的,使用fetchone獲取數(shù)據(jù)

一般來(lái)說(shuō),查詢結(jié)果集是多條數(shù)據(jù)的,使用fetchall獲取數(shù)據(jù)

簡(jiǎn)單實(shí)例

import cx_Oracle
conn = cx_Oracle.connect("用戶名/密碼@數(shù)據(jù)庫(kù)地址")
cur = conn.cursor()
sql_3 = "select id from CZEPT_BSDT t WHERE name='{}'".format("基本支出調(diào)劑")
cur.execute(sql_3)
result_3 = cur.fetchone() # 單條數(shù)據(jù)結(jié)果集
print(result_3)  # (1,)
print(type(result_3)) # <class 'tuple'>
result_3= result_3[0] 
print(result_3)  # 1
print(type(result_3)) # <class 'int'>
print("*" * 50)
sql_2 = "select * from CZEPT_BSDT "  
cur.execute(sql_2)
result_2 = cur.fetchall()  # 多條數(shù)據(jù)結(jié)果集
print(result_2)  # [(1,'基本支出調(diào)劑'),(3,'銀行賬戶審批'),(5,'項(xiàng)目支出調(diào)劑')]
print(type(result_2))  # <class 'list'>
result_2= result_2[0][0]
print(result_2)   # 1
print(type(result_2))  # <class 'int'>

注意事項(xiàng)

對(duì)于使用fetchone和fetchall獲取到的結(jié)果,最好使用之前先判斷非空,否則在存在空值的情況下獲取元組內(nèi)的數(shù)據(jù)時(shí),會(huì)報(bào)“超出索引”的異常。多次踩雷坑。

import cx_Oracle
connection = cx_Oracle.connect('用戶名/密碼@數(shù)據(jù)庫(kù)地址')
cur = connection.cursor()
for j in data_list:
    sql = "select guid from jczl.division where name='{}'".format(j['DIVISIONNAME'])
    cur.execute(sql)
    result = cur.fetchone()
    # 因?yàn)榇嬖跉w口處室為空,所以切片的時(shí)候總是報(bào)超出索引范圍,搞了好久
    if result is not None:
        j['DIVISIONGUID'] = str(result[0])

補(bǔ)充:python DB.fetchall()--獲取數(shù)據(jù)庫(kù)所有記錄列表

查詢到的數(shù)據(jù)格式為列表:

多個(gè)元素的列表:

單個(gè)元素的列表:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 用Python生成N層的楊輝三角的實(shí)現(xiàn)方法

    用Python生成N層的楊輝三角的實(shí)現(xiàn)方法

    這篇文章主要介紹了用Python生成N層的楊輝三角的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python練習(xí)之循環(huán)控制語(yǔ)句 break 與 continue

    python練習(xí)之循環(huán)控制語(yǔ)句 break 與 continue

    這篇文章主要介紹了python循環(huán)控制語(yǔ)句 break 與 continue,break就像是終止按鍵,不管執(zhí)行到哪一步,只要遇到break,不管什么后續(xù)步驟,直接跳出當(dāng)前循環(huán)
    2022-06-06
  • 手把手教你使用Python繪制時(shí)間序列圖

    手把手教你使用Python繪制時(shí)間序列圖

    這篇文章主要介紹了手把手教你使用Python繪制時(shí)間序列圖,本文將以股價(jià)數(shù)據(jù)集為例,指導(dǎo)你從Quandl下載股價(jià)數(shù)據(jù)集,并將這些數(shù)據(jù)繪制在價(jià)格和成交量圖表上,需要的朋友可以參考下
    2022-01-01
  • python中readline判斷文件讀取結(jié)束的方法

    python中readline判斷文件讀取結(jié)束的方法

    這篇文章主要介紹了python中readline判斷文件讀取結(jié)束的方法,實(shí)例形式詳細(xì)分析了Python中readline的用法,需要的朋友可以參考下
    2014-11-11
  • python項(xiàng)目對(duì)接釘釘SDK的實(shí)現(xiàn)

    python項(xiàng)目對(duì)接釘釘SDK的實(shí)現(xiàn)

    這篇文章主要介紹了python項(xiàng)目對(duì)接釘釘SDK的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Win10環(huán)境中如何實(shí)現(xiàn)python2和python3并存

    Win10環(huán)境中如何實(shí)現(xiàn)python2和python3并存

    這篇文章主要介紹了Win10環(huán)境中如何實(shí)現(xiàn)python2和python3并存,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • pandas 按照特定順序輸出的實(shí)現(xiàn)代碼

    pandas 按照特定順序輸出的實(shí)現(xiàn)代碼

    這篇文章主要介紹了pandas 按照特定順序輸出的實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Python讀寫(xiě)txt文本文件的操作方法全解析

    Python讀寫(xiě)txt文本文件的操作方法全解析

    這篇文章主要介紹了Python讀寫(xiě)txt文本文件的操作方法全解析,包括對(duì)文本的查找和替換等技巧的講解,需要的朋友可以參考下
    2016-06-06
  • python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式詳解

    python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式詳解

    這篇文章主要給大家介紹了關(guān)于python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-11-11

最新評(píng)論

句容市| 泾川县| 铁岭市| 海丰县| 彰武县| 静宁县| 普安县| 凌源市| 建始县| 鲁山县| 遂昌县| 阳朔县| 开原市| 徐汇区| 新乡市| 天峨县| 乌鲁木齐县| 合江县| 犍为县| 饶河县| 台东县| 独山县| 马公市| 惠水县| 林西县| 定陶县| 瓮安县| 奉化市| 灵川县| 宝鸡市| 乌拉特后旗| 福泉市| 高淳县| 婺源县| 黑水县| 板桥市| 进贤县| 柳州市| 兴业县| 兖州市| 石台县|