前言
一、实验要求
(1)JSON格式可以对高维数据进行表达和存储。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和理解。JSON格式 表达键值对<key, value>的基本格式如下,键值对都保存在双引号中:
“key” : “value”
例如:
{
“同比”: “120.7”,
“城市”: “北京”,
“定基”: “121.4”,
“环比”: “101.5”
}
(2)CSV文件的每一行是一维数据,可以使用Python中的列 表类型表示,整个CSV文件是一个二维数据,由表示每一行 的列表类型作为元素,组成一个二维列表。
二、实验内容
假设有如下的json数据
[
{
“同比”: “120.7”,
“城市”: “北京”,
“定基”: “121.4”,
“环比”: “101.5”
},
{
“同比”: “127.3”,
“城市”: “上海”,
“定基”: “127.8”,
“环比”: “101.2”
},
{
“同比”: “119.4”,
“城市”: “广州”,
“定基”: “120”,
“环比”: “101.3”
},
{
“同比”: “140.9”,
“城市”: “深圳”,
“定基”: “145.5”,
“环比”: “102”
},
{
“同比”: “101.4”,
“城市”: “沈阳”,
“定基”: “101.6”,
“环比”: “100.1”
}
]
(1)请将该二维JSON格式存储的数据recording2022.txt转换为CSV格式数据并存储在recording2022.csv文件中。
三、程序实现
1.代码
import csv
import json
def conversion():
r = open("recording2022.txt", "r",encoding='UTF-8') # 输入txt文件
w = open("recording2022.csv", "w") # 转换后文件设置
item = json.load(r)
key = item[0].keys()
value = [item.values() for item in item]
#csv文件写入
csv_writer = csv.writer(w)
#写入表头字段数据
csv_writer.writerow(key)
#写入表的值数据
csv_writer.writerows(value)
w.close()
r.close()
conversion()
2.实验结果(包括输入数据和输出结果)
输入:
输出:
三、总结
- 问题:编码设置出现问题,读入文件TXT时报错
解决方法:在r = open(“recording2022.txt”, “r”)
加入,encoding='UTF-8’改为r = open(“recording2022.txt”, “r”,encoding=‘UTF-8’)