读csv文件
- 注意若文件中有中文 一定要标注编码方式不然会报这种错误
UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 46: illegal multibyte sequence
方式一 输出类型为字符串
with open(r'd:\maoyan.csv',encoding='utf-8') as fp:
for i in fp.readlines():
print(i)
方式二 输出类型为list
import csv
with open(r'd:\maoyan.csv',encoding='utf-8') as fp:
reader = csv.reader(fp)
print(type(reader))
for line in reader:
print(line)
print(type(line))
方式三 可以用pandas
首先先安装 pandas
库pandas
处理csv文件十分方便
import pandas as pd
data = pd.read_csv(r'd:\maoyan.csv')
print(data)
写csv文件
方法一 先写表头信息 已元祖方法写入进去
import csv
headers = ['职业名称', '经验', '薪资']
values = [('张三','三年','薪资')]
with open('拉钩.csv', 'a', encoding='utf-8', newline='')as f:
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(values)
方法二 已字典形式写入进去
import csv
with open('测试.csv','a',encoding='utf-8',newline='') as fp:
# 先写表头信息
headers = ['排名', '名字', '主演','时间','评分']
values = [
{'排名': '1', '名字': '霸王别姬', '主演': '张国荣,张丰毅,巩俐', '时间': '1993-07-26', '评分': '9.5'},
{'排名': '2', '名字': '肖申克的救赎', '主演': '蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿', '时间': '1994-09-10(加拿大)', '评分': '9.5'},
{'排名': '3', '名字': '罗马假日', '主演': '格利高里·派克,奥黛丽·赫本,埃迪·艾伯特', '时间': '1953-09-02(美国)', '评分': '9.1'}
]
csv_writer = csv.DictWriter(fp,headers)
#表明表头信息
csv_writer.writeheader()
csv_writer.writerows(values)
读json文件
注意!
Python为我们提供了简单易用的库来实现JSON文件的读写操作,我们可以调用库的loads()
方法将JSON文本字符串转为JSON对象,可以通过dumps()
方法将JSON对象转为文本字符串
例如,这里有一段JSON形式的字符串,它是str类型,我们用Python将其转换为可操作的数据结构,如列表或字典:
- 这里
loads()
方法将字符串转为JSON对象。由于最外层是中括号,所以最终的类型是列表类型,进而可以对此内容进行操作了
import json
str = '''
[{
"name": "Bob",
"gender": "male",
"birthday": "1992-10-18"
}, {
"name": "Selina",
"gender": "female",
"birthday": "1995-10-18"
}]
'''
print(type(str))
data = json.loads(str)
print(data)
print(type(data))
注意:要使用标准的JSON的数据格式----即需要用双引号来包围,不能使用单引号
写json文件时需要把json对象转化为python字符串
dumps()
方法将JSON对象转化为字符串
import json
data = [{
'name': '王伟',
'gender': '男',
'birthday': '1992-10-18'
}]
with open('data.json', 'w', encoding = 'utf-8') as file:
file.write(json.dumps(data, indent=2))
注意!
i其中的参数indent
是缩进 若保存的文件包含中文应该以utf-8
的格式编码