1. JsonPath模块简介
JSONPath是一种基于路径表达式的查询语言,用于从JSON数据中提取或查询数据。它类似于XPath(XML Path Language),但是专门用于JSON数据。JSONPath模块是一个用于Python的第三方模块,它实现了JSONPath查询语言的解析和执行。
使用JSONPath模块,您可以通过一个简单的字符串表达式来指定要查询的JSON数据的路径。JSONPath表达式由一系列的路径操作符和通配符组成,用于定位和提取数据。一些常用的JSONPath表达式操作符和通配符包括:
-
$:表示根节点。
-
.:表示当前节点。
-
..:表示当前节点的所有子节点。
-
*:表示所有子节点。
-
[]:表示条件过滤。
-
@:表示当前节点或者所有子节点。
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)
版权声明:本文为zmxnn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。