提取数据处理02---结构化数据处理01(JSON文件、JSON模块包的基本使用)
程序员文章站
2024-02-06 23:51:40
...
JSON文件
处理方法
- JSON Path
- 转化成Python类型进行操作(json类)
JSON模块
转换格式对照
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number(int) | int,long |
number(real) | float |
true | True |
false | False |
null | None |
loads与dumps
用于JSON字符串(注意:文本操作)
方法 | 作用 |
---|---|
json.loads() | 将包含了一个JSON数据的str、bytes、bytearray对象转化成一个Python Dictionary |
josn.dumps() | 将Python对象转换为json对象 |
loads
import json
strList = '[1, 2, 3, 4]'
print(type(strList))
json.loads(strList)
print(type(json.loads(strList)))
strDict = '{"name": "张三", "age": "18"}'
print(type(strDict))
json.loads(strDict) # json数据自动按Unicode存储
print(type(json.loads(strDict)))
dumps
import json
listStr = [1, 2, 3, 4]
print(type(listStr))
json.dumps(listStr)
print(type(json.dumps(listStr)))
tupleStr = (1, 2, 3, 4)
json.dumps(tupleStr)
print(type(json.dumps(tupleStr)))
dictStr = {"name": "张三", "age": "18"}
print(type(dictStr))
json.dumps(dictStr)
print(type(json.dumps(dictStr)))
注意
- json.dumps() 序列化时默认使用的ascii编码
- 添加参数 ensure_ascii=False 禁用ascii编码,按utf-8编码
dictStr = {"name": "张三", "age": "18"}
json.dumps(dictStr, ensure_ascii=False)
load与dump
包换JSON的类文件对象(注意:文件操作)
方法 | 作用 |
---|---|
json.load | 将Python对象转换为json对象并写入文件 |
json.dump() | 读取文件中的json形式字符串并转化为python类型 |
json.dump(Data, file_object, Param)
①要存储的数据Data ②存储文件
load
import json
# 使用json.load提取类文件对象中的数据
strList = json.load(open("test.json"))
print strList
dump
# json.dump 能够把python类型放入类文件对象中
listStr = [{"name": "张三"}, {"age": "18"}]
json.dump(listStr, open("test.json","w"), ensure_ascii=False)
with open("test.json", "w", encoding="utf-8") as f:
f.write(json.dumps(listStr,ensure_ascii=False, indent=2))
参数Params
参数 | 作用 |
---|---|
ensure_ascii | 默认值True ,False为关闭ASC11码,以文档中方式保存 |
indent | 自动缩进,美化格式 |
sort_keys | 将数据根据keys的值进行排序 |
encoding | 设置json编码格式,默认utf-8 |
上一篇: JavaFX——编写一个GUI程序
下一篇: Java集合框架之Collection