csv檔案讀取:csv檔案格式如下:分別有2行三列。
訪問**如下:
f=open
(r'e:\py_prj\test.csv','rb')
f_csv=csv.reader(f)
forf
inf_csv:
printf
在這裡f是乙個元組,為了訪問某個字段,需要用索引來訪問對應的值,如f[0]訪問的是first,f[1]訪問的是second,f[2]訪問的是third. 用列索引的方式很難記住。一不留神就會搞錯。可以考慮用對元組命名的方式
這裡介紹namedtuple的方法。
下面的例子中實現用namedtuple建立乙個物件賦值給user。其中物件例項是user,包含了3個屬性值,分別是name,age,height。通過賦值後得到u
就可以利用屬性訪問的方法u.name來訪問各個屬性
user=namedtuple('user',['name','age','height'])u=user(
name
='zhf',
age=20,
height
=180
)printu.name
這種方法也可以用到csv檔案的讀取上。**修改如下
f=open
(r'e:\py_prj\test.csv','rb')
f_csv=csv.reader(f)
heading=
next
(f_csv)
row=namedtuple('row',heading)
forrowinf_csv:
row=row(*row)
printrow.first
,row.second,row.third
這樣訪問起來就直觀多了。那麼用物件的方式看起來太複雜了點。可以用字典的方式麼。也是可以的而且方法更加簡潔。方法如下。
f=open
(r'e:\py_prj\test.csv','rb')
f_csv=csv.dictreader(f)
forrowinf_csv:
printrow['first']
同樣的寫入也可以用csv.dictwriter()
json資料:
json和xml是網路世界上用的最多的資料交換格式。json主要有以下特點:
1 物件表示為鍵值對,也就是字典的形式
2 資料又逗號分隔
3 花括號儲存物件
4 方括號儲存陣列
操作json檔案的方法如下:
data=f=open
('test.json','w')
json.dump(data,f)
f=open
('test.json','r')
printjson.load(f)
在生成的json檔案中格式如下:
可以看到json的這種鍵值結構在感官上比xml的結構要簡單得多,也更一目了然。
我們還可以對json進行擴充套件。如下面的資料。在record的鍵值裡面是乙個陣列,陣列裡面有2個字典資料
data=,]}
可以看到json可以儲存複雜的資料結構。當我們列印出來的時候。可以看到結構的視覺化結果不怎麼好。
我們可以用pprint
的方法將結果列印出結構化的樣子:
這樣看起來就清晰直觀多了
Python Cookbook學習記錄
4.迭代器和生成器 4.9迭代所有可能的組合和排列 import itertools items a b c permutations 接受乙個元素集合,將其中的元素重排列為所有可能的情況,並以元組形式返回 for p in itertools.permutations items print p ...
每天學點Python Cookbook(四)
任務 尋找上乙個星期五的日期。解決方案 通過python標準庫的datetime模組,可以快速完成此任務。import datetime,calendar def find last friday last friday datetime.date.today oneday datetime.tim...
python cookbook讀書筆記
今天開始讀 python cookbook 書裡有許多python優雅的寫法,可以作為python的一本高階書。以下是我個人的一些筆記 1 遞迴並不是python擅長的 2 關於生成器 generator 乙個函式中需要有乙個yield語句即可將其轉換為乙個生成器。跟普通函式不同的是,生成器只能用於...