解析JSON文件

现在让我们来解析之前创建的distres.json文件。
很简单,只需要打开文件,其他操作和之前一样:

with open('distros.json', 'r') as f:
    distros_dict = json.load(f)
for distro in distros_dict:
    print(distro['Name'])
Python如何解析JSON数据

导入JSON模块。

import json

然后,创建一些基本的JSON数据。
它与字典共享几乎相同的语法。
Python将JSON视为一个字符串,除非它来自文件。

json_data = '{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}'

创建一个json文件:

distres.json:

[
	{
		"Name": "Debian",
		"Version": "9",
		"Install": "apt",
		"Owner": "SPI",
		"Kernel": "4.9"
	},
	{
		"Name": "Ubuntu",
		"Version": "17.10",
		"Install": "apt",
		"Owner": "Canonical",
		"Kernel": "4.13"
	},
	{
		"Name": "Fedora",
		"Version": "26",
		"Install": "dnf",
		"Owner": "Red Hat",
		"Kernel": "4.13"
	},
	{
		"Name": "CentOS",
		"Version": "7",
		"Install": "yum",
		"Owner": "Red Hat",
		"Kernel": "3.10"
	},
	{
		"Name": "OpenSUSE",
		"Version": "42.3",
		"Install": "zypper",
		"Owner": "Novell",
		"Kernel": "4.4"
	},
	{
		"Name": "Arch Linux",
		"Version": "Rolling Release",
		"Install": "pacman",
		"Owner": "SPI",
		"Kernel": "4.13"
	},
	{
		"Name": "Gentoo",
		"Version": "Rolling Release",
		"Install": "emerge",
		"Owner": "Gentoo Foundation",
		"Kernel": "4.12"
	}
]

Python使用来自jsonloads方法从字符串加载JSON。

加载并打印JSON数据:

parsed_json = (json.loads(json_data))
print(json.dumps(parsed_json, indent=4, sort_keys=True))

将json数据解析后保存到变量中并进行处理:

loaded_json = json.loads(json_data)
for x in loaded_json:
	print("%s: %d" % (x, loaded_json[x]))

解析对象

JSON实际上是JavaScript中的对象,有时候我们也需要将它变成Python中的对象。

通过将JSON加载到一个对象的“__dict __属性”。

class Test(object):
    def __init__(self, data):
	    self.__dict__ = json.loads(data)
test1 = Test(json_data)
print(test1.a)
日期:2020-07-07 20:54:28 来源:oir作者:oir