处理json的几种方案

一、什么是JSON

 

其中类文件对象的理解:
具有read()或者write()方法的对象就是类文件对象,比如f = open(“a.txt”,”r”) f就是类文件对象

1、

json_str = json.dumps(mydict,indent=2,ensure_ascii=False,sort_keys=True)  格式化处理返回json数据

  • json.dumps : 实现python类型转化为json字符串
  •  indent : 实现换行和空格,一般为indent=2
  • ensure_ascii=False : 实现让中文写入的时候保持为中文
  •  sort_keys=True : 实现以26个字母顺序排列

2、json.loads : 把json字符串转化为python的数据类型

my_dict = json.loads(json_str)

3、json.dump 实现把python 类型写入类文件对象

 

with open(“temp.txt”,”w”) as f:
json.dump(mydict,f,ensure_ascii=False,indent=2)

 

4、json.load 实现类文件对象中的json字符串转化为python类型

 

with open(“temp.txt”,”r”) as f:
my_dict = json.load(f)

 

二、实际应用
#如果用requests发起的请求
import json
res = requests.get(url,headers=self.headers)

res = requests.content.decode() #在python3中,res.content 返回的是二进制bytes类型的数据,需要用decode()转成unicode的str类型,当请求头中有Accept-Encoding: gzip, deflate时,返回的响应需要解压,即
import gzip
ret = gzip.decompress(res.content).decode("utf-8")

res = json.loads(res) #转成json对象,在python里也就是dict类型

#如果用scrapy.Requests发的请求
import json
import scrapy
res = scrapy.Requests(url,headers=self.headers)

res = res.txt.decode()

res = json.loads(res) #转成json对象,在python里也就是dict类型


三、什么是jsonpath_rw
比json好用的东东,当json存在多层数据串的时候应用比较方便
json_obj = {"student":[{"male":176,"female":162},{"male":174,"female":159}]}
[match.value for match in male]
[176, 174]

parse:分析

  • 语句解析:先分析,再查找提取value

 

 

  • 先分析,再匹配他们来自哪里

 

 

 

 

转载于:https://www.cnblogs.com/deeptester-vv/p/11316105.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值