关于《python编程快速上手-让繁琐工作自动化》的学习笔记
CSV文件是简化的电子表格,保存为纯文本文件;JSON以JavaScript源代码的形式将信息保存在纯文本文件中。
1.CSV模块
CSV文件中的每行代表电子表格中的一行,逗号分割了该行中的单元格。
- Reader对象
使用CSV模块从CSV文件中读取数据,需要创建一个Reader对象,Reader对象可以迭代遍历CSV文件中的每一行。
>>> import csv
>>> csvfile=open('test.csv')
>>> csvreader=csv.reader(csvfile)
>>> csvdata=list(reader)
>>> csvdata
[['1', '', '', '', '', ''], ['', '2', '', '', '', ''], ['', '', '3', '', '', '']]
>>> csvdata[0][0]
'1'
- 在for循环中,从Reader对象读取数据
对于大型的CSV文件,需要在一个for循环中使用Reader对象,这样可以避免将整个文件一次性转入内存 - Writer对象
Writer对象将数据写入CSV文件,要创建一个Writer对象就要使用csv.writer()函数。首先调用open()并传入’w’,以写模式打开一个文件,这将创建对象,然后将它传递给csv.writer()创建一个Writer对象(如果忘记在open()中加入newline=’'关键字,CSV文件将有两倍行距)。Writer对象的writerow()方法接受一个列表参数,writerow()函数的返回值是写入文件这一行的字符数(包括换行符)
>>> import csv
>>> outfile=open('test.csv','w',newline='')
>>> writer=csv.writer(outfile)
>>> writer.writerow(['spam','eggs','bacon','ham'])
21
>>> outfile.close()
- delimiter和lineterminator关键词参数
默认情况下,csv文件的分隔符是逗号,行终止符是出现在行末的字符即换行符。可以使用csv.writer()的delimiter和lineterminator关键词参数修改成不同的值
2.JSON和API
- json模块
- 使用loads()函数读取JSON
调用loads()函数,向它传入一个JSON数据字符串
>>> import json >>> stringjson='{"name":"zophie","iscat":"true","felineIQ":"null"}' >>> jsondata=json.loads(stringjson) >>> jsondata {'name': 'zophie', 'iscat': 'true', 'felineIQ': 'null'}
- 使用dumps函数写出JSON
json.dumps()函数将一个python值转换为JSON格式的数据字符串。
>>> string='{"name":zophie,"iscat":true,"felineIQ":null}' >>> jsondata=json.dumps(string) >>> jsondata '"{\\"name\\":zophie,\\"iscat\\":true,\\"felineIQ\\":null}"'
- 使用loads()函数读取JSON