第三章——供機器讀取的數據(CSV與JSON)


本書使用的文件、代碼:https://github.com/huangtao36/data_wrangling

機器可讀(machine readable)文件格式:
1、逗號分隔值(Comma-Separated Values, CSV)
2、JavaScript對象符號(JavaScript Object Notation, JSON)
3、可擴展標記語言(eXtensible Markup Language, XML)
 

第三章使用的數據文件:

 

一、CSV數據

  CSV文件:將數據列用逗號分隔的文件,文件擴展名為.csv
  TSV文件:將數據列用Tab分隔的文件(tab-separated values),文件擴展名為.csv或.tsv(要打開文件確定是何種類型的數據)
 
  用excel打開文件data-text.csv:
      
  用 Sublime打開data-text.csv:
    

  Python代碼1

import csv
 
csvfile = open('data-text.csv','rb') #打開文件,只讀模式('wb'表示寫)
reader = csv.reader(csvfile)  #讀取數據
 
for row in reader:  #輸出數據
  print row

    在PyCharm中運行:

      

     在控制台中使用命令行運行:

      

      (運行代碼文件只需要進入到其所在文件夾,輸入:python 文件名)  

      

  Python代碼2

import csv

csvfile = open('data-text.csv','rb')
reader = csv.DictReader(csvfile)

for row in reader:
  print row

    在PyCharm中運行:

      

    在控制台中使用命令行運行:

      

   注:

    1、使用命令行編譯時需要進入到代碼文件所在文件夾,並且數據文件應與代碼文件所在同一目錄下(因為代碼中沒有指定數據文件路徑)

    2、對比上面兩個代碼如下,對比輸出,代碼1輸出的是列表格式,代碼2輸出的是字典格式

        代碼1:reader = csv.reader(csvfile)  #讀取數據

        代碼2:reader = csv.DictReader(csvfile)


 二、JSON數據

  .json為文件擴展名,極少數命名不規范的.js文件也可能包含的是JSON數據(.js文件一般是JavaScript文件 )

  JSON數據文件部分內容

    

    JSON文件內容類似於Python中的字典,每一行都有鍵和值。

  Python代碼

import json

json_data = open('data-text.json').read()

data = json.loads(json_data)

for item in data:
    print item

    在PyCharm上運行

      

  比較CSV與JOSN中Python代碼的不同

    1、CSV以只讀方式打開文件(文件變量),JSON讀取文件的內容后還把其保存在變量json_data中(內容變量)

     2、CSV中open()返回的是一個文件對象,JSON中得到的是一個字符串

   運行type()來檢測一下(使用命令行逐句輸入(注意要在數據文件路徑下運行)):

filename = 'data-text.json'

type(open(filename,'rb'))

type(open(filename),read())

    

    由以上結果可以看出使用open()函數直接打開文件,獲得的是一個文件類型的數據;而使用read()讀取后獲得的是一個字符串類型

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM