龙空技术网

python学习记录: jsonpath模块的使用

琴棋书画788 221

前言:

此时兄弟们对“pythonjsonlist”大致比较注意,兄弟们都需要知道一些“pythonjsonlist”的相关资讯。那么小编同时在网上搜集了一些有关“pythonjsonlist””的相关资讯,希望看官们能喜欢,同学们快快来学习一下吧!

数据提取-jsonpath模块知识点了解 jsonpath模块的使用场景掌握 jsonpath模块的使用1. jsonpath模块的使用场景

如果有一个多层嵌套的复杂字典,想要根据key和下标来批量提取value,这是比较困难的。jsonpath模块就能解决这个痛点,接下来我们就来学习jsonpath模块

jsonpath可以按照key对python字典进行批量数据提取

知识点:了解 jsonpath模块的使用场景2. jsonpath模块的使用方法2.1 jsonpath模块的安装

jsonpath是第三方模块,需要额外安装

pip install jsonpath

2.2 jsonpath模块提取数据的方法

from jsonpath import jsonpathret = jsonpath(a, 'jsonpath语法规则字符串')
2.3 jsonpath语法规则2.4 jsonpath使用示例
book_dict = {   "store": {    "book": [       { "category": "reference",        "author": "Nigel Rees",        "title": "Sayings of the Century",        "price": 8.95      },      { "category": "fiction",        "author": "Evelyn Waugh",        "title": "Sword of Honour",        "price": 12.99      },      { "category": "fiction",        "author": "Herman Melville",        "title": "Moby Dick",        "isbn": "0-553-21311-3",        "price": 8.99      },      { "category": "fiction",        "author": "J. R. R. Tolkien",        "title": "The Lord of the Rings",        "isbn": "0-395-19395-8",        "price": 22.99      }    ],    "bicycle": {      "color": "red",      "price": 19.95    }  }}from jsonpath import jsonpathprint(jsonpath(book_dict, '$..author')) # 如果取不到将返回False # 返回列表,如果取不到将返回False
3. jsonpath练习

我们以拉勾网城市JSON文件 为例,获取所有城市的名字的列表,并写入文件。

参考代码:

import requestsimport jsonpathimport json# 获取拉勾网城市json字符串url = ';headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"}response =requests.get(url, headers=headers)html_str = response.content.decode()# 把json格式字符串转换成python对象jsonobj = json.loads(html_str)# 从根节点开始,获取所有key为name的值citylist = jsonpath.jsonpath(jsonobj,'$..name')# 写入文件with open('city_name.txt','w') as f:    content = json.dumps(citylist, ensure_ascii=False)    f.write(content)

标签: #pythonjsonlist #pythonurl转json数据 #python的json模块安装