Python提取JSON格式数据

前言:

  • 我们经常会用到json数据,json数据格式主要是用来和不同语言之间进行交互
  • 比如你要给java端的提供数据,你需要将自己的数据转换为json格式才行
  • 所以不管是提供给后端其他人,还是从API返回的数据结果,我们都需要封装成json数据格式或者解析json数据
  • json的数据格式类似于python中的字典,都是key:value,当然value也可以是数组的格式

一、JSON使用

1.导入json的包

import json

2.常用的方法

函数描述
json.dumps将python的数据转为json格式提供出去
json.loads将json格式数据解析为python格式

举例:
json.loads()

import json

strDict = '{"city": "广州", "name": "小黑"}'
print(type(strDict)) #<class 'str'>

# 将json格式数据转换为python格式,可以看出将str还原为了dict格式
r = json.loads(strDict) 
print(r,type(r)) # {'city': '广州', 'name': '小黑'} <class 'dict'>

json.dumps()

import json

listStr = [1, 2, 3, 4]
dictStr = {"city": "北京", "name": "大猫"}
print(type(listStr)) # <class 'list'>
print(type(dictStr)) #<class 'dict'>

# 将python数据转为json格式,可以看出转换后的数据类型均变为了str
s1 = json.dumps(listStr)
s2 = json.dumps(dictStr,ensure_ascii=False)

print(s1,type(s1)) # [1, 2, 3, 4] <class 'str'>
print(s2,type(s2)) # {"city": "北京", "name": "大猫"} <class 'str'>

二、实战

1.json.loads()

json的数据格式如下

{
    "animals": {
        "dog": [
            {
                "name": "Rufus",
                "age":15
            },
            {
                "name": "Marty",
                "age": null
            }
        ]
    }
}

我们想要取出json格式中所有狗的名字:

load_data = json.loads(dump_data)
data = load_data['animals']['dog']
result1 = []
for i in data:
    result1.append(i.["name"])
print(result1)

运行结果

['Rufus', 'Marty']

2.jsonpath

如果用jsonpath工具如何取数呢?

load_data = json.loads(dump_data)
jobs=load_data['animals']['dog']
result2 = []
for i in data:
# 从根节点开始,匹配name节点
    result2.append(jsonpath.jsonpath(i,'$..name')[0])
print(result2)

在这里插入图片描述

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值