JsonPath
json Path 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括: Java script, Python , PHP 和 Java。
JsonPath 对于 JSON 来说,相当于 XPATH 对于 XML。
JsonPath与XPath语法对比:
Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法。
示例:
我们以拉勾网城市JSON文件 为例,获取所有城市。
注意事项:
- json.loads() 是把 Json格式字符串解码转换成Python对象,如果在json.loads的时候出错,要注意被解码的Json字符的 编码 。
如果传入的字符串的编码不是UTF-8的话,需要指定 字符编码 的参数 encoding
dataDict = json.loads(jsonStr GBK );
- dataJsonStr是JSON字符串,假设其编码本身是非UTF-8的话而是GBK 的,那么上述代码会导致出错,改为对应的:
dataDict = json.loads(jsonStrGBK, encoding=GBK
- 如果 dataJsonStr通过encoding指定了合适的编码,但是其中又包含了其他编码的字符,则需要先去将dataJsonStr转换为 Unicode ,然后再指定编码格式调用json.loads()
dataJsonStrUni = dataJsonStr.decode(“GB2312″); dataDict = json.loads(dataJsonStrUni, encoding=”GB2312”);
- decode的作用是将其他编码的字符串转换成 Unicode 编码
- encode的作用是将 Unicode 编码转换成其他编码的字符串
- 一句话:UTF-8是对Unicode字符集进行编码的一种编码方式