import json
注意是双引号
1.json.loads(a) 把字符串对象a转换为 python字典类型
json.load 针对一个类文件对象 加载一个json文件并转换为python 字典类型 例如:
with open('abc.json','r',encoding='utf-8' ) as f:
ret=load(f) 相当于 ret=loads(f.read())
2.json.dumps(b) 把python字典b 转换为字符串对象 可以写入文件
json.dump 针对一个类文件对象 将python 字典转换为一个可写入文件的字符串 例如:
with open('abc.json','w',encoding='utf-8' ) as f: ret为要写入文件的python字典
json.dump(ret,f,ensure_ascii=False,) 相当于 f.write(json.dumps(ret),ensure_ascii=False,index=2)
ensure_ascii =False 不显示 ascii 编码 显示中文, json格式缩进 为2
二.编码问题
字符集包括 ASCII GB2312 GB18030 Unicode
ASCII 编码是一个字节, 而 Unicode 是两个字节 所以同样大小的 内存 Unicode只能存一半
UTF-8 是Unicode实现的一种方式 ,是一种升级版编码方式,可以是1,2,3个字节编码
在爬虫中response.text是根据HTTP 响应头 猜测的编码方式 所以不准 修改方法 response.encoding='utf-8'
所以我们一般 取response.content 二进制 再解码 .decode() 默认是以 utf-8 解码
如果编码 方式与解码方式不一样 就会出现乱码甚至报错
三.字符串操作
a='abcdefg'
a.find('f') 返回值f的位置
四.jsonpath模块
import jsonpath
用法: result_list=jsonpath.jsonpath ('python字典' ,'表达式') 返回值是一个列表
表达式: $ 表示为根节点--起始 @ 表示当前元素 .或[ ]表示 子元素 相当于 xpath中的 /
'$ . . author' : python字典 下面所有 键为author的值
{ "store": { $.store.book [ ' author ' ] store下面的book 下面的 author 的内容
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},