成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python:用Pandas讀CSV文件寫到MySQL

Jonathan Shieber / 2940人閱讀

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

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

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)

不出意外的話會打印出一句: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)

運行下,ok,可以存入了index參數(shù)表示是否把DataFrame的index當成一列來存儲,一般來說是不需要的,所以賦值為False

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

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)

打印處理以后亂碼了。我們在讀csv時候最好指定編碼,我的本地GBK:

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

我們可以正常的打印信息了,但是又報錯了,錯誤如下:

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

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

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

解決了

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38509.html

相關(guān)文章

  • pandas使

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

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

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

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

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

    netmou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<