Python中JSON的基本用法

来源:互联网 发布:中国国籍知乎 编辑:程序博客网 时间:2024/05/19 08:39

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
1. json.dumps(): 对数据进行编码,将python数据转换为JSON数据,一般用于文件的写入,一般是将dict转换为str类型
2. json.loads(): 对数据进行解码,将JSON数据转换为python数据,一般用于文件读取。

#!/usr/bin/python3import json# Python 字典类型转换为 JSON 对象data1 = {    'no' : 1,    'name' : 'Runoob',    'url' : 'http://www.runoob.com'}json_str = json.dumps(data1)print ("Python 原始数据:", repr(data1))print ("JSON 对象:", json_str)# 将 JSON 对象转换为 Python 字典data2 = json.loads(json_str)print ("data2['name']: ", data2['name'])print ("data2['url']: ", data2['url'])

运行结果如下:

Python 原始数据: {'name': 'Runoob', 'no': 1, 'url': 'http://www.runoob.com'}JSON 对象: {"name": "Runoob", "no": 1, "url": "http://www.runoob.com"}data2['name']:  Runoobdata2['url']:  http://www.runoob.com

如果要处理文件的话,用json.dump()与json.load()方法较好:

# 写入 JSON 数据with open('data.json', 'w') as f:    json.dump(data, f)# 读取数据with open('data.json', 'r') as f:    data = json.load(f)

最后,如果读取数据中出现编码错误问题,则很可能是没设置好utf-8
可用以下模式解决

#!/usr/bin/env python# -*- coding:utf-8 -*-import jsonjson.dumps(data,ensure_ascii=False)