04 Python网络爬虫 JsonPath模块

1. JsonPath模块简介

JSONPath是一种基于路径表达式的查询语言,用于从JSON数据中提取或查询数据。它类似于XPath(XML Path Language),但是专门用于JSON数据。JSONPath模块是一个用于Python的第三方模块,它实现了JSONPath查询语言的解析和执行。

使用JSONPath模块,您可以通过一个简单的字符串表达式来指定要查询的JSON数据的路径。JSONPath表达式由一系列的路径操作符和通配符组成,用于定位和提取数据。一些常用的JSONPath表达式操作符和通配符包括:

  1. $:表示根节点。

  2. .:表示当前节点。

  3. ..:表示当前节点的所有子节点。

  4. *:表示所有子节点。

  5. []:表示条件过滤。

  6. @:表示当前节点或者所有子节点。

2. JsonPath  -  loads

'''
01-JSON模块-loads
将json格式转换为python格式
'''
import json
# 1.设置json数据类型(字符串对象)
strList = '[1,2,3,4]'

# 2.设置json数据类型(字符串对象)
strDict = '{"city":"北京","name":"张三丰"}'

# 3.将strList转换list  json字符串数组转换为python中的列表
print(json.loads(strList))
print(type(json.loads(strList)))

# 4.将strDict转换dict json字符串字典转换为python中的dict
print(json.loads(strDict))
print(type(json.loads(strDict)))

3. JsonPath  -  dumps

'''
02-JSON模块-dumps
'''
import json
import chardet
# 1.python常见的数据
listStr = [1,2,3,4]
tupleStr = (5,7,8,10)
dictStr = {'city':'南京','name':'我们大家'}

# 2.python中listStr转换为json中的array
print(json.dumps(listStr))
print(type(json.dumps(listStr)))

# 3.python中tupleStr转换为json中的object
print(json.dumps(tupleStr))
print(type(json.dumps(tupleStr)))

# 4.python中的dictStr转换为json的object
'''
1.json.dumps()默认的序列化是ascii编码==中文
2.添加ensure_ascii=False 代表不使用默认的序列
'''
print(json.dumps(dictStr,ensure_ascii=False))

# 5.chardet编码识别模块
'''
ensure_ascii=False 将ascii编码设置为utf-8
encoding='utf-8'bytes()函数使用的解码格式
'''
print(chardet.detect(
    bytes(json.dumps(dictStr,ensure_ascii=False),
          encoding='utf-8')))
print(chardet.detect(bytes(json.dumps(dictStr),encoding='gbk')))

4. JsonPath  -  编码问题

'''
JsonPath-编码问题
任何平台的任何编码都可以和unicode相互转换
'''
# 设置utf-8的编码的字符串
utf8Str = "您好地球"

# 1.将utf-8转换成unicode编码
# b'\xe6\x82\xa8\xe5\xa5\xbd\xe5\x9c\xb0\xe7\x90\x83'
unicodeStr = utf8Str.encode("utf-8")
print(unicodeStr)

# 2.将unicode编码转换成utf-8
utf8Str = unicodeStr.decode("utf-8")
print(utf8Str)

# 3.将unicode编码转换成gbk编码
gbkStr = unicodeStr.decode("gbk")
print(gbkStr)

# 4.将gbk编码转换成unicode
unicodeStr = gbkStr.encode("gbk")
print(unicodeStr)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值