python操作csv文件json文件详细操作

读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
首先先安装 pandaspandas处理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的格式编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值