成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python:用Pandas讀CSV文件寫(xiě)到MySQL

Jonathan Shieber / 2985人閱讀

摘要:匯總一下,自己最近在使用讀寫(xiě)存數(shù)據(jù)庫(kù)中遇到的各種問(wèn)題。假如我有一個(gè)含有中文的文件本人小明一年級(jí)小張三年級(jí)打印處理以后亂碼了。解決這個(gè)問(wèn)題時(shí)候也是被坑了一把,網(wǎng)上說(shuō)什么的都有。過(guò)程就不說(shuō)了,看代碼解決了

匯總一下,自己最近在使用Python讀寫(xiě)CSV存數(shù)據(jù)庫(kù)中遇到的各種問(wèn)題。
上代碼:

reload(sys)
sys.setdefaultencoding("utf-8")
host = "127.0.0.1"
port = 3306
db = "world"
user = "root"
password = "123456"

con = MySQLdb.connect(host=host,charset="utf8",port=port,db=db,user=user,passwd=password)
try:
    df = pd.read_sql(sql=r"select * from city", con=con)
    df.to_sql("test",con=con,flavor="mysql")
except Exception as e:
    print(e.message)

不出意外的話會(huì)打印出一句:database flavor MySQL is not supported
在stackoverflow上找到了答案:The flavor ‘mysql’ is deprecated in pandas version 0.19.

我們換一種方式:

reload(sys)
sys.setdefaultencoding("utf-8")
host = "127.0.0.1"
port = 3306
db = "world"
user = "root"
password = "123456"

engine = create_engine(str(r"mysql+mysqldb://%s:" + "%s" + "@%s/%s") % (user, password, host, db))

try:
    df = pd.read_sql(sql=r"select * from city", con=engine)
    df.to_sql("test",con=engine,if_exists="append",index=False)
except Exception as e:
    print(e.message)

運(yùn)行下,ok,可以存入了index參數(shù)表示是否把DataFrame的index當(dāng)成一列來(lái)存儲(chǔ),一般來(lái)說(shuō)是不需要的,所以賦值為False

現(xiàn)在看似問(wèn)題都解決了,但是還有一個(gè)小問(wèn)題。
假如我有一個(gè)含有中文的csv文件(本人Window):
name age class
小明 15 一年級(jí)
小張 18 三年級(jí)

engine = create_engine(str(r"mysql+mysqldb://%s:" + "%s" + "@%s/%s") % (user, password, host, db))

try:
    df = pd.read_csv(r"C:UsersxxDesktopdata.csv")
    print(df)
    df.to_sql("test", con=engine, if_exists="append", index=False)
except Exception as e:
    print(e.message)

打印處理以后亂碼了。我們?cè)谧xcsv時(shí)候最好指定編碼,我的本地GBK:

df = pd.read_csv(r"C:UsersxxDesktopdata.csv",encoding="gbk")

我們可以正常的打印信息了,但是又報(bào)錯(cuò)了,錯(cuò)誤如下:

UnicodeEncodeError: "latin-1" codec can"t encode characters in position 0-1: ordinal not in range(256)

還是編碼問(wèn)題,原因呢,我們存到數(shù)據(jù)庫(kù)時(shí)候沒(méi)有指定編碼。解決這個(gè)問(wèn)題時(shí)候也是被坑了一把,網(wǎng)上說(shuō)什么的都有。過(guò)程就不說(shuō)了,看代碼:

engine = create_engine(str(r"mysql+mysqldb://%s:" + "%s" + "@%s/%s?charset=utf8") % (user, password, host, db))

解決了

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/38509.html

相關(guān)文章

  • pandas使

    摘要:寫(xiě)這篇文章主要是想按照一定的邏輯順總結(jié)一下自己做項(xiàng)目以來(lái)序用到過(guò)的的知識(shí)點(diǎn)雖然官方文檔上各個(gè)方面都寫(xiě)的很清楚但是還是想自己再寫(xiě)一份一個(gè)是想作為個(gè)人梳理另外也可以把最經(jīng)常使用的部分拎出來(lái)更清晰一些不定時(shí)更新數(shù)據(jù)的讀數(shù)據(jù)其中是需要的語(yǔ)句是創(chuàng)建的 寫(xiě)這篇文章,主要是想按照一定的邏輯順總結(jié)一下自己做項(xiàng)目以來(lái),序用到過(guò)的pandas的知識(shí)點(diǎn).雖然pandas官方文檔上各個(gè)方面都寫(xiě)的很清楚,但是還...

    int64 評(píng)論0 收藏0
  • Python之使Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的寫(xiě)

    摘要:本次分享將介紹如何在中使用庫(kù)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀寫(xiě)。提供了工具包及對(duì)象關(guān)系映射工具,使用許可證發(fā)行。模塊實(shí)現(xiàn)了與不同數(shù)據(jù)庫(kù)的連接,而模塊則使得能夠操作數(shù)據(jù)庫(kù)。 ??本次分享將介紹如何在Python中使用Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的讀寫(xiě)。首先我們需要了解點(diǎn)ORM方面的知識(shí)。 ORM技術(shù) ??對(duì)象關(guān)系映射技術(shù),即ORM(Object-Relational Mapping)技術(shù),指的是把關(guān)...

    darcrand 評(píng)論0 收藏0
  • Pandas技巧大全:含具體代碼實(shí)現(xiàn)

    摘要:查看數(shù)據(jù)的基本統(tǒng)計(jì)信息。用處是用于數(shù)據(jù)讀寫(xiě)處理更改提取等一系列操作的包,可以說(shuō),所有能實(shí)現(xiàn)的功能,都可以通過(guò)代碼輕松實(shí)現(xiàn),因此,對(duì)于學(xué)習(xí)非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出無(wú)法窮盡可以簡(jiǎn)單的實(shí)現(xiàn)。 放在前面的話? ? ????? ? ? ?? ????????這學(xué)期刻意少...

    netmou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<