目的
将Python数据编码为JSON。
发行版
这将适用于安装了Python的任何发行版。
要求
使用Python进行有效的Linux安装
困难
简单
约定
介绍
JSON是用于在程序和/或语言之间传递数据的通用格式,尤其是在Web上。 Python具有出色的内置支持,可以将数据从Python程序转换为JSON,以供其他程序使用。
基本编码
Python的JSON支持来自一个模块。在使用JSON之前,您需要导入它。
import json
接下来,该方法要求将您的数据安排在字典中。设置要使用的字典。
distro_install_command = {'Debian': 'apt',
'Ubuntu': 'apt',
'Fedora': 'dnf',
'CentOS': 'yum',
'OpenSUSE': 'zypper',
'Arch': 'pacman',
'Gentoo': 'emerge'
}
有一种方法叫做dumps
在里面json
可用于将数据”dump”转换为JSON的模块。
distro_json = json.dumps(distro_install_command)
尝试将其打印出来。
print(distro_json)
它有点整洁,因为它已经是字典了,但是没有以常规的JSON结构显示。
排序
如果您希望JSON像JSON一样打印出来,则需要传递一些其他选项json.dumps
。
distro_json = json.dumps(distro_install_command, sort_keys=True, indent=4)
尝试打印出来。它看起来更像您期望的那样。
print(distro_json)
文件输出
最好将JSON输出到可以访问的位置。网络上最常见的选项是使用JSON创建API。这超出了本指南的范围,因此将涵盖创建文件的内容。
因此,由于必须布置所有部分,因此使用Python文件更容易使用此部分。从上方开始,使用导入和字典设置文件。
现在,最简单的结构是with
声明。它将大量代码压缩为简化形式,并确保关闭文件。你的with
语句应类似于以下内容。
with open('distros.json', 'w') as f:
json.dump(distro_install_command, f)
该块运行后,JSON将被写入文件。注意细微的差异。这需要dump
方法而不是dumps
方法。dumps
将其视为字符串,这会使事情搞砸。
对象
您也可以将对象序列化为JSON,但这需要一些额外的工作。json.dumps
只接受字典,因此您需要使用__dict))
对象的属性。它包含有关组织在字典中的对象的信息,并且可以像对待字典一样使用该对象。
创建一个要使用的对象。
class Test(object):
def __init__():
self.a = 10
self.b = 15
self.c = 20
test1 = Test()
您可以将实例化的对象传递给json.dumps
。
print(json.dumps(test1.__dict__))
您将看到打印出在对象中设置的变量。
总结思想
编码JSON就是这样。您绝对可以做更多,并尝试不同的数据配置。 JSON和字典具有相似的语法和结构,因此很容易以一种易于理解的方式排列数据。
练习题
- 导入JSON模块
- 创建字典进行编码
- 打印编码的字典
- 打印编码和排序的字典
- 将字典作为JSON导出到文件
- 创建一个包含实例数据的Python对象
- 将对象打印为JSON
- 将对象作为JSON导出到文件