python cookbook學習筆記十一

2021-07-31 20:37:04 字數 2691 閱讀 3150

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語句即可將其轉換為乙個生成器。跟普通函式不同的是,生成器只能用於...