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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是生命?当下的每一天迎接全新的自己。每天清晨五点钟坚持打卡,总能看见清晨第一缕阳光。
    Linda溪澜阅读 1,722评论 0 0
  • 经常不易入睡,或睡而易醒,难以复睡,或时时惊醒,睡不安宁,甚至彻夜不眠的症状。主要由于机体阴阳平衡失调,阴虚阳盛,...
    酵素净食阅读 2,833评论 0 0
  • Q1:Lightmap在PC上显示正常,但是转到Android平台上存在色差,颜色普遍偏暗。 一般来讲,有两种情况...
    此年此景阅读 2,206评论 0 1
  • 这些是在CGGeometry.h里的 CGPoint、CGSize、CGRect、CGRectEdge实际上都是结...
    Niklaus_8871阅读 4,776评论 0 0
  • 一个可萌可萌的小女生!ฅ( ̳• ̮ • ̳)ฅ先来给点基本信息ლ(❛ ̮ ❛✿)ლ姓名:安七的晴爷别名:晴爷...
    安七的晴爷阅读 1,514评论 0 0