Hom's Blog


Python:读取和处理json数据

JSON(JavaScript Object Notation)是一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集.

一般数据处理

对于本地数据, python就是使用json模块直接dumps(data)loads(str)罗, 对于文件是dump(data,file)load(file). python json编码支持基本类型为None, bool, int, floatstr以及list, tuple, dict. dictkey需要是字符串类型.

JSON转换时字符串会转为unicode型.u’string’

在json数据中falsetrue会转化为False, True; null为转为None

import json
data = {
    'name' : 'ACME',
    'shares' : 100,
    'price' : 542.23
}

#dumps到字符串
json_str = json.dumps(data)
#loads回来
data2 = json.loads(json_str)

## 针对文件
# Writing JSON data
with open('data.json', 'w') as f:
    json.dump(data, f)

# Reading data back
with open('data.json', 'r') as f:
    data3 = json.load(f)

网络数据处理

使用urllib2/urllib

使用urlopen方法打开网址后, 使用json.load(u)以文件方法来读取.也可以先u.read().decode('utf-8')读取转为字符串后再传给json.loads(str).

import urllib2,json
u=urllib2.urlopen("http://api.crossref.org/works/10.1021/jm0203783")
json.load(u)

注意, 因为是文件形式, 读取一次后即到底, 不能再次调用json.load(u)获取内容.

使用requests

抓取json数据后, 可以直接使用相应对象的json()方法获得json数据, 也可以使用r.text调用字符串数据传递给json获取.

import json,requests
r=requests.get("http://api.crossref.org/works/10.1021/jm0203783")
r.json()
json.loads(r.text)

Reference

  1. Python处理JSON
  2. python3-cookbook: 读写JSON数据


◆ 本文地址: http://platinhom.github.io/2016/01/04/py-json/, 转载请注明 ◆

前一篇: Python:Escape和Unescape特殊字符
后一篇: Python基于内建字符串进行继承


Contact: Hom / 已阅读()
Source 类别: Coding  标签: Python