python爬⾍json数据解析_爬⾍的解析⽅式⼀:JOSN解析众多语⾔都能进⾏爬⾍,但基于python的爬⾍显得更加简洁,⽅便。爬⾍也成了python语⾔中必不可少的⼀部分。爬⾍解析数据的⽅式有很多种,在上⼀篇给⼤家介绍的是爬⾍能获取什么样的数据和具体的解析⽅式,本篇给⼤家带来的是JSON解析。
JSON
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表⽰各种复杂的结构。
对象:
对象在js中表⽰为{ }括起来的内容,数据结构为 { key:value, key:value, ... }的键值对的结构,在⾯向对象的语⾔中,key为对象的属性,value为对应的属性值,所以很容易理解,取值⽅法为 对象.key 获取属性值,这个属性值的类型可以是数字、字符串、数组、对象这⼏种。
数组:
数组在js中是中括号[ ]括起来的内容,数据结构为 ["Python", "javascript", "C++", ...],取值⽅式和所有语⾔中⼀样,使⽤索引获取,字段值的类型可以是 数字、字符串、数组、对象⼏种。
JSON(JavaScript Object Notation) 是⼀种轻量级的数据交换格式,它使得⼈们很容易的进⾏阅读和编写。同时也⽅便了机器进⾏解析和⽣成。适⽤于进⾏数据交互的场景,⽐如⽹站前台与后台之间的数据交互。import json
def resolveJson(path):
file = open(path, "rb")
fileJson = json.load(file)
field = fileJson["field"]
futures = fileJson["futures"]
type = fileJson["type"]
name = fileJson["name"]
time = fileJson["time"]
return (field, futures, type, name, time)
def output():
result = resolveJson(path)
print(result)
for x in result:
for y in x:
print(y)
path = r"C:\Users\dell\Desktop\kt\test.json"
output()
注意函数返回多个值时返回的是⼀个元组tuple;
对⼀个字符串进⾏for循环的时候会对每个字符进⾏遍历
Python JSON
本章节我们将为⼤家介绍如何使⽤ Python 语⾔来编码和解码 JSON 对象。
JSON(JavaScript Object Notation) 是⼀种轻量级的数据交换格式,易于⼈阅读和编写。
JSON 函数
使⽤ JSON 函数需要导⼊ json 库:import json。
函数 描述
json.dumps 将 Python 对象编码成 JSON 字符串
json.loads 将已编码的 JSON 字符串解码为 Python 对象
json.dumps
json.dumps ⽤于将 Python 对象编码成 JSON 字符串。
语法
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
实例
以下实例将数组编码为 JSON 格式数据:#!/usr/bin/python
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = json.dumps(data)
print json
以上代码执⾏结果为:[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]
使⽤参数让 JSON 数据格式化输出:>>> import json
>>> print json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
{
"a": "Runoob",
"b": 7
}
python 原始类型向 json 类型的转化对照表:
Python JSON
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null
json.loads
json.loads ⽤于解码 JSON 数据。该函数返回 Python 字段的数据类型。
语法json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])实例
以下实例展⽰了Python 如何解码 JSON 对象:
#!/usr/bin/python
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print text
以上代码执⾏结果为:{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
json 类型转换到 python 的类型对照表:
JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None
使⽤第三⽅库:Demjson
Demjson 是 python 的第三⽅模块库,可⽤于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。
Github 地址:github/dmeranda/demjson
官⽅地址:anda.us/python/demjson/
环境配置
在使⽤ Demjson 编码或解码 JSON 数据前,我们需要先安装 Demjson 模块。本教程我们会下载 Demjson 并安装:$ tar -xvzf demjson-2.2.
$ cd demjson-2.2.3
$ python setup.py install
JSON 函数
函数 描述
encode 将 Python 对象编码成 JSON 字符串
decode 将已编码的 JSON 字符串解码为 Python 对象
encode
Python encode() 函数⽤于将 Python 对象编码成 JSON 字符串。
js获取json的key和value语法
实例
以下实例将数组编码为 JSON 格式数据:
#!/usr/bin/python
import demjson
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = de(data)
print json
以上代码执⾏结果为:[{"a":1,"b":2,"c":3,"d":4,"e":5}]
decode
Python 可以使⽤ demjson.decode() 函数解码 JSON 数据。该函数返回 Python 字段的数据类型。
语法
demjson.decode(self, txt)
实例
以下实例展⽰了Python 如何解码 JSON 对象:
#!/usr/bin/python
import demjson
json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = demjson.decode(json)
print text
以上代码执⾏结果为:{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论