python模块05-json/jsonPath

3  请求数据提取:json

3.1 json类型数据

        json对象:{key:calue}

        json数组:[1,2,3,4]

3.2 json模块

1) json.loads

  • 把Json格式字符串解码转换成Python对象(json数组对应列表,json对象对应字典)
  • 注意点:python中的None,在json中使用null来标识

2)json.dumps

  • 实现python类型转换为json字符串,返回有个str对象把有个python对象编码转换成json字符串
  •  注意:json.dumps()序列化时默认使用的ascii编码
  • 添加参数ensure_ascii = False禁用ascii编码,按utf-8编码
url = 'http://httpbin.org/post'
#dumps将python对象转换为Json数据
data_json = json.dumps({'stock_no':'600585','price':'52.12'})
res = requests.post(url, data_json)
print(res)
print(res.text)
print(res.content)
print(res.json())

"""结果
<Response [200]>
{
  "args": {}, 
  "data": "{\"stock_no\": \"600585\", \"price\": \"52.12\"}", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "40", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.32.3", 
    "X-Amzn-Trace-Id": "Root=1-66cb51d7-7c500fe92870796a2f2c7e8e"
  }, 
  "json": {
    "price": "52.12", 
    "stock_no": "600585"
  }, 
  "origin": "172.104.189.197", 
  "url": "http://httpbin.org/post"
}

b'{\n  "args": {}, \n  "data": "{\\"stock_no\\": \\"600585\\", \\"price\\": \\"52.12\\"}", \n  "files": {}, \n  "form": {}, \n  "headers": {\n    "Accept": "*/*", \n    "Accept-Encoding": "gzip, deflate", \n    "Content-Length": "40", \n    "Host": "httpbin.org", \n    "User-Agent": "python-requests/2.32.3", \n    "X-Amzn-Trace-Id": "Root=1-66cb51d7-7c500fe92870796a2f2c7e8e"\n  }, \n  "json": {\n    "price": "52.12", \n    "stock_no": "600585"\n  }, \n  "origin": "172.104.189.197", \n  "url": "http://httpbin.org/post"\n}\n'

{'args': {}, 'data': '{"stock_no": "600585", "price": "52.12"}', 'files': {}, 'form': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '40', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.32.3', 'X-Amzn-Trace-Id': 'Root=1-66cb527f-3f933ec779160df739e51cc2'}, 'json': {'price': '52.12', 'stock_no': '600585'}, 'origin': '172.104.189.197', 'url': 'http://httpbin.org/post'}

"""

3.3 jsonPath模块

        JsonPath,用于是提取JSON数据中的指定数据

pip install jsonpath

JsonPath常用语法:

JSONPath描述
$根节点
. or []取子节点
..子孙节点
[]如数组下标,根据内容选值等

 使用方法:jsonpath.jsonpath()

        参数1:数据对象

        参数2:jsonpath表达式

import jsonpath

user ={"data":{"username":"xiaoyi","pwd":"123456"}}
#如果匹配不到数据,直接返回False
print(jsonpath.jsonpath(user, "$.username")) #False

#如果匹配不到数据,直接得到结果列表,两点代表子孙节点,子孙节点代表所有层级
print(jsonpath.jsonpath(user, "$..username"))#['xiaoyi']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值