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

python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作

 更新時(shí)間:2021年04月09日 09:16:28   作者:Steven灬  
這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

數(shù)據(jù)庫(kù)中有一字段type_code,有中文類型和中文類型編碼,現(xiàn)在對(duì)type_code字段的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)處理,編碼對(duì)應(yīng)的字典如下:

{'ys4ng35toofdviy9ce0pn1uxw2x7trjb':'娛樂',
        'vekgqjtw3ax20udsniycjv1hdsa7t4oz':'經(jīng)濟(jì)',
        'vjzy0fobzgxkcnlbrsduhp47f8pxcoaj':'軍事',
        'uamwbfqlxo7bu0warx6vkhefigkhtoz3':'政治',
        'lyr1hbrnmg9qzvwuzlk5fas7v628jiqx':'文化',
        }

其中數(shù)據(jù)庫(kù)的32位隨機(jī)編碼生成程序如下:

string.ascii_letters 對(duì)應(yīng)字母(包括大小寫), string.digits(對(duì)應(yīng)數(shù)字) ,string.punctuation(對(duì)應(yīng)特殊字符)

import string
import random
def get_code():
    return ''.join(random.sample(string.ascii_letters + string.digits + string.punctuation, 32))
print(get_code())
 
def get_code1():
    return ''.join(random.sample(string.ascii_letters + string.digits, 32))
testresult= get_code1()
print(testresult.lower())
print(type(testresult))

結(jié)果:

)@+t37/b|UQ[K;!spj<(>%r9"PokwTe=
igwle98kgqtcprke7byvq12xnhucmz4v
<class 'str'>

cur.fetchall:

import pymysql
import pandas as pd 
conn = pymysql.Connect(host="127.0.0.1",port=3306,user="root",password="123456",charset="utf8",db="sql_prac")
cur = conn.cursor()
print("連接成功")
sql = "SELECT type_code,count(1) as num FROM test GROUP BY type_code ORDER BY num desc"
cur.execute(sql)
res = cur.fetchall()
print(res)
(('ys4ng35toofdviy9ce0pn1uxw2x7trjb', 8), ('vekgqjtw3ax20udsniycjv1hdsa7t4oz', 5), ('vjzy0fobzgxkcnlbrsduhp47f8pxcoaj', 3), ('uamwbfqlxo7bu0warx6vkhefigkhtoz3', 3), ('娛樂', 2), ('lyr1hbrnmg9qzvwuzlk5fas7v628jiqx', 1), ('政治', 1), ('經(jīng)濟(jì)', 1), ('軍事', 1), ('文化', 1))
res = pd.DataFrame(list(res), columns=['name','value'])
print(res)

dicts = {'ys4ng35toofdviy9ce0pn1uxw2x7trjb':'娛樂',
        'vekgqjtw3ax20udsniycjv1hdsa7t4oz':'經(jīng)濟(jì)',
        'vjzy0fobzgxkcnlbrsduhp47f8pxcoaj':'軍事',
        'uamwbfqlxo7bu0warx6vkhefigkhtoz3':'政治',
        'lyr1hbrnmg9qzvwuzlk5fas7v628jiqx':'文化',
        }
res['name'] = res['name'].map(lambda x:dicts[x] if x in dicts else x)
print(res)
  name  value
0   娛樂      8
1   經(jīng)濟(jì)      5
2   軍事      3
3   政治      3
4   娛樂      2
5   文化      1
6   政治      1
7   經(jīng)濟(jì)      1
8   軍事      1
9   文化      1
#分組統(tǒng)計(jì)
result = res.groupby(['name']).sum().reset_index()
print(result)
 name  value
0   軍事      4
1   娛樂     10
2   政治      4
3   文化      2
4   經(jīng)濟(jì)      6
#排序
result = result.sort_values(['value'], ascending=False)
 name  value
1   娛樂     10
4   經(jīng)濟(jì)      6
0   軍事      4
2   政治      4
3   文化      2
#輸出為list,前端需要的數(shù)據(jù)格式
data_dict = result.to_dict(orient='records')
print(data_dict)
[{'name': '娛樂', 'value': 10}, {'name': '經(jīng)濟(jì)', 'value': 6}, {'name': '軍事', 'value': 4}, {'name': '政治', 'value': 4}, {'name': '文化', 'value': 2}]

cur.fetchone

先測(cè)試SQL:

代碼:

import pymysql
import pandas as pd
conn = pymysql.Connect(host="127.0.0.1",port=3306,user="root",password="123456",charset="utf8",db="sql_prac")
cur = conn.cursor()
print("連接成功")
sql = "select count(case when type_code in ('ys4ng35toofdviy9ce0pn1uxw2x7trjb','娛樂') then 1 end) 娛樂," \
      "count(case when type_code in ('vekgqjtw3ax20udsniycjv1hdsa7t4oz','經(jīng)濟(jì)') then 1 end) 經(jīng)濟(jì)," \
      "count(case when type_code in ('vjzy0fobzgxkcnlbrsduhp47f8pxcoaj','軍事') then 1 end) 軍事," \
      "count(case when type_code in ('uamwbfqlxo7bu0warx6vkhefigkhtoz3' ,'政治') then 1 end) 政治," \
      "count(case when type_code in ('lyr1hbrnmg9qzvwuzlk5fas7v628jiqx','文化') then 1 end) 文化 from test"
cur.execute(sql)
res = cur.fetchone()
print(res)

返回結(jié)果為元組:

(10, 6, 4, 4, 2)
data = [
                {"name": "娛樂", "value": res[0]},
                {"name": "經(jīng)濟(jì)", "value": res[1]},
                {"name": "軍事", "value": res[2]},
                {"name": "政治", "value": res[3]},
                {"name": "文化", "value": res[4]}
]
result = sorted(data, key=lambda x: x['value'], reverse=True)
print(result)

結(jié)果和 cur.fetchall返回的結(jié)果經(jīng)過(guò)處理后,結(jié)果是一樣的:

[{'name': '娛樂', 'value': 10}, {'name': '經(jīng)濟(jì)', 'value': 6}, {'name': '軍事', 'value': 4}, {'name': '政治', 'value': 4}, {'name': '文化', 'value': 2}]

補(bǔ)充:今天做測(cè)試,用django.db 的connection來(lái)執(zhí)行一個(gè)非常簡(jiǎn)單的查詢語(yǔ)句:

sql_str = 'select col_1 from table_1 where criteria = 1'
cursor = connection.cursor()
cursor.execute(sql_str)
fetchall = cursor.fetchall()

fetchall的值是這樣的:

(('101',), ('102',), ('103',),('104',))

上網(wǎng)搜索了一下資料:

首先f(wàn)etchone()函數(shù)它的返回值是單個(gè)的元組,也就是一行記錄,如果沒有結(jié)果,那就會(huì)返回null

其次是fetchall()函數(shù),它的返回值是多個(gè)元組,即返回多個(gè)行記錄,如果沒有結(jié)果,返回的是()

舉個(gè)例子:cursor是我們連接數(shù)據(jù)庫(kù)的實(shí)例

fetchone()的使用:

cursor.execute(select username,password,nickname from user where id='%s'  %(input)

result=cursor.fetchone(); 此時(shí)我們可以通過(guò)result[0],result[1],result[2]得到username,password,nickname

fetchall()的使用:

cursor.execute(select * from user)

result=cursor.fetchall();此時(shí)select得到的可能是多行記錄,那么我們通過(guò)fetchall得到的就是多行記錄,是一個(gè)二維元組

((username1,password1,nickname1),(username2,password2,nickname2),(username3,password3,nickname))

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

相關(guān)文章

  • 教你如何識(shí)別代理IP的真實(shí)地理位置(使用Python庫(kù))

    教你如何識(shí)別代理IP的真實(shí)地理位置(使用Python庫(kù))

    本文介紹了IP數(shù)據(jù)庫(kù)查詢、反向DNS查詢和網(wǎng)絡(luò)延遲測(cè)量三種方法,并通過(guò)案例分析和代碼實(shí)現(xiàn)展示了如何使用Python庫(kù)進(jìn)行IP地理位置查詢,需要的朋友可以參考下
    2024-03-03
  • pandas解決數(shù)據(jù)缺失、重復(fù)的方法與實(shí)踐過(guò)程

    pandas解決數(shù)據(jù)缺失、重復(fù)的方法與實(shí)踐過(guò)程

    這篇文章主要介紹了pandas解決數(shù)據(jù)缺失、重復(fù)的方法與實(shí)踐過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python模塊引入問(wèn)題和解決方案

    python模塊引入問(wèn)題和解決方案

    本文主要介紹了python模塊引入問(wèn)題和解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python 下載文件的幾種方法匯總

    python 下載文件的幾種方法匯總

    這篇文章主要介紹了python 下載文件的幾種方法匯總,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python csv文件記錄流程代碼解析

    Python csv文件記錄流程代碼解析

    這篇文章主要介紹了Python csv文件記錄流程代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • PyTorch實(shí)現(xiàn)模型剪枝的方法

    PyTorch實(shí)現(xiàn)模型剪枝的方法

    剪枝是一種優(yōu)化模型的技術(shù),可以幫助減少模型的大小和計(jì)算量,同時(shí)保持模型的準(zhǔn)確性,本文主要介紹了PyTorch實(shí)現(xiàn)模型剪枝的方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 使用Python保護(hù)或加密Excel文件的7種方法

    使用Python保護(hù)或加密Excel文件的7種方法

    Excel文件通常包含敏感信息,如財(cái)務(wù)記錄、客戶數(shù)據(jù)或?qū)S泄?保護(hù)和加密這些文件對(duì)于防止未經(jīng)授權(quán)的訪問(wèn)和維護(hù)機(jī)密性至關(guān)重要,在本文中,我們將探討如何使用Python自動(dòng)化Excel文件的安全保護(hù)和加密過(guò)程,確保數(shù)據(jù)的安全性,需要的朋友可以參考下
    2025-02-02
  • 基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的銀行轉(zhuǎn)賬操作

    基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的銀行轉(zhuǎn)賬操作

    這篇文章主要介紹了基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的銀行轉(zhuǎn)賬操作的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Python采集數(shù)據(jù)保存CSV文件出現(xiàn)內(nèi)容亂碼的解決方法

    Python采集數(shù)據(jù)保存CSV文件出現(xiàn)內(nèi)容亂碼的解決方法

    這篇文章主要為大家詳細(xì)介紹了如何解決Python中保存CSV文件內(nèi)容亂碼的問(wèn)題,并提供詳細(xì)的示例代碼以更好地理解和解決這個(gè)問(wèn)題,希望對(duì)大家有所幫助
    2024-03-03
  • Numpy中的mask的使用

    Numpy中的mask的使用

    這篇文章主要介紹了Numpy中的mask的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07

最新評(píng)論

浮梁县| 高碑店市| 西盟| 普洱| 尤溪县| 黄石市| 阿坝| 淄博市| 张家口市| 来安县| 南乐县| 台南市| 东宁县| 万全县| 瓦房店市| 高碑店市| 阿合奇县| 稷山县| 洪泽县| 且末县| 徐水县| 临城县| 孟州市| 平阳县| 保德县| 娄烦县| 会同县| 栖霞市| 江北区| 鹿泉市| 兴安县| 新乐市| 任丘市| 平定县| 武隆县| 黄浦区| 呼和浩特市| 诸城市| 徐州市| 邵武市| 林芝县|