python 读取csv文件转成字符串_Python将csv文件转换为json文件

这段代码演示了如何使用Python将CSV文件转换为JSON文件。通过读取CSV文件的每一行,将数据转换为所需的格式(数字和字符串),然后使用json库将数据序列化并写入JSON文件。注意在写入文件时,使用flag变量来避免在JSON文件的末尾添加额外的逗号。
摘要由CSDN通过智能技术生成

importcsvimportjson

json_file= open('file.json', 'w+', encoding='utf-8')

csv_file= open('1501.csv', 'r', encoding='utf-8')#读取文件第一行不读取换行符作为json文件里每个数据的键值

keys = csv_file.readline().strip('\n').split(',')

json_file.write('[\n')flag=0whilecsv_file.readline():#字符串列表转化为数字列表

values = csv_file.readline().strip('\n').split(',')

values_temp= map(eval, values[0:2])

values_else=list(values_temp)

values_else.append(values[2])#用zip()函数将两个列表形成映射关系,创建字典

dic_temp =dict(zip(keys, values_else))#将字典转化为字符串且带有缩进

#flag用于判断json文件中 "," 和换行的添加位置

json_str = json.dumps(dic_temp, indent=4)if flag == 1:

json_file.write(',\n')

json_file.write(json_str)

flag= 1json_file.write(']')

csv_file.close()

json_file.close()

代码解释:

1、while csv_file.readline:

循环读取csv文件的每一行,csv_flie为我的csv文件名字

2、字符串列表转换为数字列表

我的csv文件中一行数据有三个元素,项目要求数据格式为前两个元素为数字类型,第三个为字符串类型

3、用open()与readline()实现以行为单位读取文件时,读取出来的数据皆是字符串类型

json使用write()写文件时,必须先用dumps()将数据转换成字符串再存入。

4、关于flag

若是直接在存入每一行之后,write(',\n')写入逗号和换行符则会发现,json的最后一行数据多出来一个逗号,删除很麻烦

所以,我直接用flag来进行判断。当写入第一行数据之后,在第二行数据写入之前,先写入逗号和换行符,则第二行数据会顺利写入

5、最重要的一点,我的两个文件都是放在同一个项目的同一个文件夹中,希望大家参考代码时,修改为自己的文件路径。其余内容请阅读代码中的注释。

json文件样式(部分):

1855925-20201015103336068-1954091328.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值