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

一文秒懂python讀寫csv xml json文件各種騷操作

 更新時間:2019年07月04日 08:36:51   投稿:mrr  
多年來,數(shù)據(jù)存儲的可能格式顯著增加,但是,在日常使用中,還是以 CSV 、 JSON 和 XML 占主導(dǎo)地位。 在本文中,我將與你分享在Python中使用這三種流行數(shù)據(jù)格式及其之間相互轉(zhuǎn)換的最簡單方法,需要的朋友可以參考下

Python優(yōu)越的靈活性和易用性使其成為最受歡迎的編程語言之一,尤其是對數(shù)據(jù)科學(xué)家而言。 這在很大程度上是因為使用Python處理大型數(shù)據(jù)集是很簡單的一件事情。

如今,每家科技公司都在制定數(shù)據(jù)戰(zhàn)略。 他們都意識到,擁有正確的數(shù)據(jù)(干凈、盡可能多)會給他們帶來關(guān)鍵的競爭優(yōu)勢。 數(shù)據(jù),如果使用有效,可以提供深層次的、隱藏在表象之下的信息。

多年來,數(shù)據(jù)存儲的可能格式顯著增加,但是,在日常使用中,還是以 CSV 、 JSON 和 XML 占主導(dǎo)地位。 在本文中,我將與你分享在Python中使用這三種流行數(shù)據(jù)格式及其之間相互轉(zhuǎn)換的最簡單方法!

CSV 數(shù)據(jù)

CSV文件是存儲數(shù)據(jù)的最常見方式,你會發(fā)現(xiàn),Kaggle競賽中的大多數(shù)數(shù)據(jù)都是以這種方式存儲的。 我們可以使用Python內(nèi)置的csv庫讀寫CSV文件,通常,我們將數(shù)據(jù)讀入一個列表中,列表中每個元素又是一個列表,代表一行數(shù)據(jù)。

觀察下面的代碼,當(dāng)我們運行 csv.reader() 時,就可以訪問到我們指定的CSV數(shù)據(jù)文件。 而 csvreader.next() 函數(shù)的作用是從CSV中讀取一行,每次調(diào)用它,它都會移動到下一行。 我們還可以通過 for row in csvreader 使用for循環(huán)遍歷csv的每一行。 另外,最好確保每一行的列數(shù)相同,否則,在處理列表時可能會遇到一些錯誤。

import csv filename = "my_data.csv" fields = [] rows = [] # 讀取csv文件 with open(filename, 'r') as csvfile: # 創(chuàng)建一個csv reader對象 csvreader = csv.reader(csvfile) # 從文件中第一行中讀取屬性名稱信息 # fields = next(csvreader) python3.2 以上的版本使用 fields = csvreader.next() # 接著一行一行讀取數(shù)據(jù) for row in csvreader: rows.append(row) # 打印前5行信息 for row in rows[:5]: print(row)

在Python將數(shù)據(jù)寫入CSV也很容易,在一個單獨的列表中設(shè)置屬性名稱,并將要寫入的數(shù)據(jù)存儲在一個列表中。 這一次,我們將創(chuàng)建一個 writer() 對象,并使用它將數(shù)據(jù)寫入文件,這與我們讀取數(shù)據(jù)的方式非常相似。

import csv # 屬性名稱 fields = ['Name', 'Goals', 'Assists', 'Shots'] # csv文件中每一行的數(shù)據(jù),一行為一個列表 rows = [ ['Emily', '12', '18', '112'], ['Katie', '8', '24', '96'], ['John', '16', '9', '101'], ['Mike', '3', '14', '82']] filename = "soccer.csv" # 將數(shù)據(jù)寫入到csv文件中 with open(filename, 'w+') as csvfile: # 創(chuàng)建一個csv writer對象 csvwriter = csv.writer(csvfile) # 寫入屬性名稱 csvwriter.writerow(fields) # 寫入數(shù)據(jù) csvwriter.writerows(rows)

當(dāng)然,使用強大的pandas庫將會使處理數(shù)據(jù)變得容易很多,從CSV讀取和寫入文件都只需要一行代碼!

import pandas as pd filename = "my_data.csv" # 讀取csv文件數(shù)據(jù) data = pd.read_csv(filename) # 打印前5行 print(data.head(5)) # 將數(shù)據(jù)寫入到csv文件中 data.to_csv("new_data.csv", sep=",", index=False)

我們甚至可以使用pandas通過一行代碼快速將CSV轉(zhuǎn)換為字典列表。 轉(zhuǎn)換為字典列表之后,我們可以使用 dicttoxml 庫將其轉(zhuǎn)換為XML格式,我們還可以將它保存為JSON文件!

import pandas as pd from dicttoxml import dicttoxml import json # 創(chuàng)建一個DataFrame data = {'Name': ['Emily', 'Katie', 'John', 'Mike'], 'Goals': [12, 8, 16, 3], 'Assists': [18, 24, 9, 14], 'Shots': [112, 96, 101, 82] } df = pd.DataFrame(data, columns=data.keys()) # 將DataFrame轉(zhuǎn)化為一個字典并且將它存儲到j(luò)son文件中 data_dict = df.to_dict(orient="records") with open('output.json', "w+") as f: json.dump(data_dict, f, indent=4) # 將DataFrame轉(zhuǎn)化為一個字典并且將它存儲到xml文件中 xml_data = dicttoxml(data_dict).decode() with open("output.xml", "w+") as f: f.write(xml_data)

JSON數(shù)據(jù)

JSON提供了一種干凈且易于閱讀的格式,因為它維護(hù)了一個字典風(fēng)格的結(jié)構(gòu)。 就像CSV一樣,Python有一個內(nèi)置的json模塊,使讀寫變得超級容易! 從上面的例子可以看到當(dāng)我們讀取CSV時,可以將數(shù)據(jù)以字典的形式存儲,然后再將字典寫入文件。

import json import pandas as pd # 使用json模塊從json文件中讀取數(shù)據(jù) # 以字典形式存儲 with open('data.json') as f: data_listofdict = json.load(f) # 也可以直接使用pandas直接讀取json文件 data_df = pd.read_json('data.json', orient='records') # 將字典數(shù)據(jù)保存為json文件 # 并使用 'indent' and 'sort_keys' 格式化json文件 with open('new_data.json', 'w+') as json_file: json.dump(data_listofdict, json_file, indent=4, sort_keys=True) # 也可以使用pandas將字典結(jié)構(gòu)的數(shù)據(jù)保存為json文件 export = data_df.to_json('new_data.json', orient='records')

正如我們之前看到的,我們可以通過pandas或者使用Python的內(nèi)置csv模塊輕松地將我們的數(shù)據(jù)存儲為CSV文件,而在轉(zhuǎn)化為成XML時,我們使用的是 dicttoxml 庫。

import json import pandas as pd import csv # 從json文件中讀取數(shù)據(jù) # 數(shù)據(jù)存儲在一個字典列表中 with open('data.json') as f: data_listofdict = json.load(f) # 以列表中的字典寫入倒csv文件中 keys = data_listofdict[0].keys() with open('saved_data.csv', 'w') as output_file: dict_writer = csv.DictWriter(output_file, keys) dict_writer.writeheader() dict_writer.writerows(data_listofdict)

XML數(shù)據(jù)

XML有點不同于CSV和JSON。 通常,CSV和JSON由于其簡單性而被廣泛使用。 它們讀、寫和解釋起來既簡單又快捷,不需要額外的工作,而且解析JSON或CSV是非常輕量級的。

另一方面,XML往往數(shù)據(jù)量要大一些。 你如果正在發(fā)送更多的數(shù)據(jù),這意味著你需要更多的帶寬、更多的存儲空間和更多的運行時間。 但是與JSON和CSV相比,XML確實具有一些額外的特性: 你可以使用名稱空間來構(gòu)建和共享標(biāo)準(zhǔn)結(jié)構(gòu)、更好的繼承表示,以及用XML schema、DTD等表示數(shù)據(jù)的行業(yè)標(biāo)準(zhǔn)化方法。

要讀取XML數(shù)據(jù),我們將使用Python內(nèi)置的XML模塊的子模塊ElementTree。 這里,我們可以使用 xmltodict 庫將ElementTree對象轉(zhuǎn)換為字典。 一旦有了字典,我們就可以像上面一樣將字典換轉(zhuǎn)換為CSV、JSON或pandas的 DataFrame !

import xml.etree.ElementTree as ET import xmltodict import json tree = ET.parse('output.xml') xml_data = tree.getroot() xmlstr = ET.tostring(xml_data, encoding='utf8', method='xml') data_dict = dict(xmltodict.parse(xmlstr)) print(data_dict) with open('new_data_2.json', 'w+') as json_file: json.dump(data_dict, json_file, indent=4, sort_keys=True)

總結(jié)

以上所述是小編給大家介紹的一文綜述python讀寫csv xml json文件各種騷操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python實現(xiàn)動態(tài)條形圖的示例詳解

    Python實現(xiàn)動態(tài)條形圖的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Python中的pynimate模塊實現(xiàn)動態(tài)條形圖的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • Python中移除List重復(fù)項的五種方法

    Python中移除List重復(fù)項的五種方法

    本文列些處幾種去除在Python 列表中(list)可能存在的重復(fù)項,這在很多應(yīng)用程序中都會遇到的需求,本文介紹幾種方法,感興趣的可以了解一下
    2021-05-05
  • 一文教你徹底解決Python包下載慢問題

    一文教你徹底解決Python包下載慢問題

    在利用python中,我們經(jīng)常需要使用到各種各樣的庫。其中,pip是我們常用的安裝工具,一般情況下我們基本上是直接pip方法安裝第三方包,下面這篇文章主要給大家介紹了關(guān)于如何徹底解決Python包下載慢問題的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Python實現(xiàn)自動發(fā)送郵件功能

    Python實現(xiàn)自動發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)自動發(fā)送郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 老生常談python的私有公有屬性(必看篇)

    老生常談python的私有公有屬性(必看篇)

    下面小編就為大家?guī)硪黄仙U刾ython的私有公有屬性(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • python中文本字符處理的簡單方法記錄

    python中文本字符處理的簡單方法記錄

    這篇文章主要給大家介紹了關(guān)于python中文本字符處理的簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python中的集合一起來學(xué)習(xí)一下

    Python中的集合一起來學(xué)習(xí)一下

    這篇文章主要為大家詳細(xì)介紹了Python集合,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 對Python中type打開文件的方式介紹

    對Python中type打開文件的方式介紹

    下面小編就為大家介紹一下對Python中type打開文件的方式。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python?import模塊時有錯誤紅線的原因

    python?import模塊時有錯誤紅線的原因

    這篇文章主要介紹了python?import模塊時有錯誤紅線的原因及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python實現(xiàn)獲取某天是某個月中的第幾周

    Python實現(xiàn)獲取某天是某個月中的第幾周

    這篇文章主要介紹了Python實現(xiàn)獲取某天是某個月中的第幾周,本文代碼實現(xiàn)獲取指定的某天是某個月中的第幾周、周一作為一周的開始,需要的朋友可以參考下
    2015-02-02

最新評論

璧山县| 湖北省| 丹阳市| 黄梅县| 涪陵区| 晋江市| 庄浪县| 乐山市| 富阳市| 西畴县| 凭祥市| 霍林郭勒市| 旬邑县| 克什克腾旗| 卫辉市| 乐清市| 双江| 通州区| 沾化县| 汉川市| 滁州市| 晋城| 油尖旺区| 黔江区| 洛阳市| 海兴县| 宜宾县| 新竹市| 绥棱县| 屏山县| 来安县| 河东区| 资溪县| 黄龙县| 方城县| 泰安市| 宜良县| 仁怀市| 溧水县| 新化县| 吴忠市|