Python读写JSON数据

1. Python数据结构转换为JSON对象

json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps()json.loads() , 要比其他序列化函数库如pickle的接口少得多。 下面演示如何将一个Python数据结构转换为JSON对象:

import json

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

json_str = json.dumps(data)

下面演示如何将一个JSON编码的字符串转换回一个Python数据结构:

data = json.loads(json_str)

JSON编码支持的基本数据类型为Noneboolintfloatstr, 以及包含这些类型数据的listtupledictionary。 对于dictionary,keys需要是字符串类型(字典中任何非字符串类型的key在编码时会先转换为字符串)。 为了遵循JSON规范,你应该只编码Python的listdictionary

2. JSON文件读写

如果你要处理的是文件而不是字符串,你可以使用另外的json.dump()json.load()函数来编码和解码JSON数据。例如:

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

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

注意此处open()函数中读写模式的实参:在编码JSON数据时使用'w'写入模式,解码JSON数据时使用'r'只读模式。使用错误的写入模式(如'a'附加模式)会导致写入文件的JSON数据格式出现错误。此外注意写入与读取JSON文件的步骤(上下文管理器)应该分开。


参考来源
[1] Python Cookbook, 3rd edition, by David Beazley and Brian K. Jones (O’Reilly). Copyright 2013 David Beazley and Brian Jones, 978-1-449-34037-7
[2] python3-cookbook中文译本,译者熊能,网址链接:http://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p02_read-write_json_data.html

你可能感兴趣的:(Python读写JSON数据)