一、JSON
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式
在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。
但是对象和数组是比较特殊且常用的两种类型:
-
对象,表示为键值对
-
数据,由逗号分隔
-
花括号,保存对象
-
方括号,保存数组
-
-
对象:对象在 JS 中是使用花括号包裹 {} 起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型
-
数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。
-
-
JSON在线解析 https://www.json.cn/
JSON百科信息:https://baike.baidu.com/item/JSON/2462549?fr=aladdin
import json
'''一、字符串 和 dic list 转换'''
# 字符串 (json形式) ——> dict list (json文件数据)
data = '[{"name":"张三","age":20},{"name":"李四","age":18}]'
list_data = json.loads(data)
# dict list ——> 字符串
list2 = [{"name": "张三", "age": 20}, {"name": "李四", "age": 18}]
data_json = json.dumps(list2)
'''二.文件对象 和 dict list 转换'''
# 1、dict list 写入 json文件
list2 = [{"name": "张三", "age": 20}, {"name": "李四", "age": 18}]
fp = open('02new.json', 'w') # fp 是 file path
json.dump(list2, fp)
#fp.close()
# 等效于json.dump(list2, open('02new.json', 'w') )
# 2、读取json文件 -----list dict
resulst = json.load(open('02new.json', 'r'))
print(resulst)
二、csv
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本来开启,再则先另存新档后用EXCEL开启,也是方法之一。
将 json中的数据 转换成 csv文件
import json
import csv
# 需求: 将json中的数据 转换成 csv文件
'''1.分别 读 , 创建文件'''
json_fp = open('02new.json', 'r')
csv_fp = open('03csv.csv', 'w')
'''2.提出 表头 , 表内容'''
data_list = json.load(json_fp) # 读取json数据
sheet_title = data_list[0].keys() # 表头
sheet_data = []
for data in data_list: #遍历 读取保存表内容
sheet_data.append(data.values())
# csv部分
'''3. csv 写入器'''
writer = csv.writer(csv_fp)
'''4. 写入表头'''
writer.writerow(sheet_title)
'''5. 写入内容'''
writer.writerows(sheet_data)
'''6. 关闭两个文件'''
json_fp.close()
csv_fp.close()