解析JSON文件
现在让我们来解析之前创建的distres.json文件。
很简单,只需要打开文件,其他操作和之前一样:
with open('distros.json', 'r') as f:
distros_dict = json.load(f)
for distro in distros_dict:
print(distro['Name'])
导入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使用来自json的loads方法从字符串加载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
