JSON与CSV文件的转换

将一组数据写入csv文件

1
2
3
4
fo = open("price.csv", "w")
ls = ['北京','101.5','120.1','121.4']
fo.write(",".join(ls)+"\n")
fo.close()

写入一组数据后

将多组数据写入csv文件

1
2
3
4
5
fo = open("price.csv", "w")
ls = [['北京','101.5','120.1','121.4'],['上海','101.4','122.1','121.8']]
for row in ls :
fo.write(",".join(row)+"\n")
fo.close()

写入多组数据后

CSV TO JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import json
fr = open("price.csv", "r")
ls = []
for line in fr :
line = line.replace("\n","")
ls.append(line.split(","))
fr.close()

fo = open("price.json", "w")
for i in range(1,len(ls)) :
ls[i]=dict(zip(ls[0],ls[i]))
s=json.dumps(ls[1:],sort_keys=True,indent=4) ##添加ensure_ascii=False,输出变成output2
fo.writelines(s)
fo.close()

##在JSON文件中的显示如下
##output1:
##[
## {
## "101.5": "101.4",
## "120.1": "122.1",
## "121.4": "121.8",
## "\u5317\u4eac": "\u4e0a\u6d77"
## }
##]

##output2:
##[
## {
## "101.5": "101.4",
## "120.1": "122.1",
## "121.4": "121.8",
## "北京": "上海"
## }
##]

CSV TO JSON详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import json
fr = open("price.csv", "r") ##读取csv文件
ls = [] ##创建一个列表来存放csv文件的内容
for line in fr : ##逐行读取csv文件的内容
line = line.replace("\n","") ##去掉换行符
ls.append(line.split(",")) ##将改行内容以","分隔生成列表,并添加到ls列表中
fr.close()
print(ls,type(ls))
fo = open("price.json", "w") ##创建一个"price.json"文件

for i in range(1,len(ls)) :

print(zip(ls[0],ls[i])) ##zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
##然后返回由这些元组组成的对象
print(list(zip(ls[0],ls[i]))) ##可以使用 list() 转换来输出列表

ls[i]=dict(zip(ls[0],ls[i])) ##转换成字典
print(ls[i])

s=json.dumps(ls[1:],sort_keys=True,indent=4,ensure_ascii=False) ##转换成JSON
print(s,type(s))

fo.writelines(s) ##写入JSON文件
fo.close() ##关闭文件

##output:
##[['北京', '101.5', '120.1', '121.4'], ['上海', '101.4', '122.1', '121.8']] <class 'list'>

##<zip object at 0x000001A785ABE488>

##[('北京', '上海'), ('101.5', '101.4'), ('120.1', '122.1'), ('121.4', '121.8')]

##{'北京': '上海', '101.5': '101.4', '120.1': '122.1', '121.4': '121.8'}

##[
## {
## "101.5": "101.4",
## "120.1": "122.1",
## "121.4": "121.8",
## "北京": "上海"
## }
##] <class 'str'>

JSON TO CSV

1
2
3
4
5
6
7
8
9
10
11
12
import json
fr = open("price.json", "r")
ls = json.load(fr)
data =[list(ls[0].keys())]
for item in ls:
data.append(list(item.values()))
fr.close()

fo = open("price1.csv","w")
for line in data:
print(','.join(line),end='\n',file=fo)
fo.close()

JSON TO CSV 详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import json
fr = open("price.json", "r") ##打开JSON文件
ls = json.load(fr) ##将JSON文件的内容解码并赋值给 ls
print(ls,type(ls))
data =[list(ls[0].keys())] ##将字典中的键转为列表赋值给 data
print(data)
for item in ls:
data.append(list(item.values())) ##将字典中值转成列表,并追加到data列表中
fr.close()
print(data)
fo = open("price1.csv","w") ##打开一个"price1.csv"文件
for line in data: ##读取data的每一行的数据
print(','.join(line),end='\n',file=fo) ##在每一行中的数据间加上",",每一行末尾加上换行符,并写入文件
fo.close()

##output:
##[{'101.5': '101.4', '120.1': '122.1', '121.4': '121.8', '北京': '上海'}] <class 'list'>

##[['101.5', '120.1', '121.4', '北京']]

##[['101.5', '120.1', '121.4', '北京'], ['101.4', '122.1', '121.8', '上海']]