Python json详解
一、抓取文本数据
-
结构化数据:json,xml(极其的稀少) 。直接转化为python类型
-
非结构化数据:HTML,字符串。正则表达式、xpath
二、JSON简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。 适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。
三、JSON格式数据特点
1.最外层要么是一个列表一样的[],要么是一个字典一样的{} 2.json数据的引号必须是双引号 3.末尾元素,不写逗号 4.没有注释
四、JSON常用方法
4.1 json.dumps()
python类型转化为json字符串,返回一个str对象把一个Python对象编码转换成Json字符串;
import json #自带库
#1.python字典 >> json(数据的填充)
def dict_json():
# python数据 > 字典
dict_data= {
"name":"mike",
"age":19,
"addr":"杭州"
}
print(dict_data,type(dict_data))
# python数据 > json
#默认使用的ascii 编码
# indent=3 每一个键值对的缩进空格
# json_data=json.dumps(dict_data)
json_data=json.dumps(dict_data,ensure_ascii=False,indent=3)
print(json_data, type(json_data))
if __name__ == '__main__':
dict_json()
4.2 json.loads()
把Json格式字符串解码转换成Python对象;
#2.json >> python字典
def json_dict():
# python数据 > 字典
dict_data = {
"name": "mike",
"age": 19,
"addr": "杭州"
}
# python数据 > json
# 默认使用的ascii 编码
json_data = json.dumps(dict_data, ensure_ascii=False, indent=3)
print(json_data, type(json_data))
# json > python 才能够处理前端交互过来的json数据
python_data=json.loads(json_data)
print(python_data,type(python_data))
4.3 json.dumps()
将Python内置类型序列化为json对象后写入文件
import json
# python格式的数据 >> json文件
#json.dump(json文件)
def ptyhon_file():
# python数据 > 字典
dict_data = {
"name": "mike",
"age": 19,
"addr": "杭州"
}
#文件对象
file_obj=open('js1.json','w',encoding='utf-8')
# json文件
json.dump(dict_data,file_obj,ensure_ascii=False)
#关闭
file_obj.close()
4.4 json.loads()
读取文件中json格式的字符串元素 转化成python类型;
# json文件 >> python格式的数据
#json.load(json文件)
def file_python():
#文件对象
file_obj=open('js1.json','r',encoding='utf-8')
# json文件 >> python格式的数据
python_data=json.load(file_obj)
print(python_data,type(python_data))
#关闭文件
file_obj.close()
if __name__ == '__main__':
file_python()