Python JSON

JSON 是用于存储和交换数据的语法。

JSON 是用 JavaScript 对象表示法(JavaScript object notation)编写的文本。

 

Python 中的 JSON

Python 有一个名为 json 的内置包,可用于处理 JSON 数据。

json包

json.loads()将json进行解析 转换成Python 字典

json.dumps()将字典转换成json 字符串

 

#引入json包
import json

#json.loads() 方法对json进行解析。结果将是 Python 字典。

# 一些 JSON:
x =  '{ "name":"Bill", "age":63, "city":"Seatle"}'

#解析x
y=json.loads(x)
print(y)#{'name': 'Bill', 'age': 63, 'city': 'Seatle'}

#json.dumps()把Python字典转换成json字符串
z=json.dumps(y)
print(z)#{"name": "Bill", "age": 63, "city": "Seatle"}
print(z is y)#False

'''
您可以把以下类型的 Python 对象转换为 JSON 字符串:
dict
list
tuple
string
int
float
True
False
None
'''
import json

print(json.dumps({"name": "Bill", "age": 63}))  #{"name": "Bill", "age": 63}
print(json.dumps(["apple", "bananas"]))  #["apple", "bananas"]
print(json.dumps(("apple", "bananas")))  #["apple", "bananas"]
print(json.dumps("hello"))  #"hello"
print(json.dumps(42))  #42
print(json.dumps(31.76))  #31.76
print(json.dumps(True))  #true
print(json.dumps(False))  #false
print(json.dumps(None))  #null

 

格式化结果

上面的实例打印一个 JSON 字符串,但它不是很容易阅读,没有缩进和换行。

json.dumps() 方法提供了令结果更易读的参数:

使用 indent 参数定义缩进数:

使用 separators 参数来更改默认分隔符: 默认值为("," , ":")

使用 sort_keys 参数来指定是否应对结果进行排序

json.dumps(x, indent=4, separators=(". " ,  " = "))

#转换包含所有合法数据类型的 Python 对象:
x = {
    "name": "Bill",
    "age": 63,
    "married": True,
    "divorced": False,
    "children": ("Jennifer", "Rory", "Phoebe"),
    "pets": None,
    "cars": [{
        "model": "Porsche",
        "mpg": 38.2
    }, {
        "model": "BMW M5",
        "mpg": 26.9
    }]
}

print(json.dumps(x))
#格式化结果打印一个 JSON 字符串,但它不是很容易阅读,没有缩进和换行。
'''
{"name": "Bill", "age": 63, "married": true, "divorced": false, "children": ["Jennifer", "Rory", "Phoebe"], "pets": null, "cars": [{"model": "Porsche", "mpg": 38.2}, {"model": "BMW M5", "mpg": 26.9}]}
'''

#json.dumps(item,indent) 方法提供了令结果更易读的参数:
#使用 indent 参数定义缩进数:
print(json.dumps(x, indent=4))
'''
{
    "name": "Bill",
    "age": 63,
    "married": true,
    "divorced": false,
    "children": [
        "Jennifer",
        "Rory",
        "Phoebe"
    ],
    "pets": null,
    "cars": [
        {
            "model": "Porsche",
            "mpg": 38.2
        },
        {
            "model": "BMW M5",
            "mpg": 26.9
        }
    ]
}
'''
#separators 参数
#您还可以定义分隔符,默认值为(", " , ": "),这意味着使用逗号和空格分隔每个对象,使用冒号和空格将键与值分开:
z=json.dumps(x, indent=4, separators=(". " , " = "))
print(z)
'''
{
    "name" = "Bill".
    "age" = 63.
    "married" = true.
    "divorced" = false.
    "children" = [
        "Jennifer".
        "Rory".
        "Phoebe"
    ].
    "pets" = null.
    "cars" = [
        {
            "model" = "Porsche".
            "mpg" = 38.2
        }.
        {
            "model" = "BMW M5".
            "mpg" = 26.9
        }
    ]
}
'''


#对结果排序
# json.dumps() 方法提供了对结果中的键进行排序的参数:
#使用 sort_keys 参数来指定是否应对结果进行排序:
p=json.dumps(x, indent=4, sort_keys=True)
print(p)
'不知道什么作用 按什么顺序排列的'
'''
{
    "age": 63,
    "cars": [
        {
            "model": "Porsche",
            "mpg": 38.2
        },
        {
            "model": "BMW M5",
            "mpg": 26.9
        }
    ],
    "children": [
        "Jennifer",
        "Rory",
        "Phoebe"
    ],
    "divorced": false,
    "married": true,
    "name": "Bill",
    "pets": null
}
'''

 

posted @ 2021-08-12 16:40  还有什么值得拥有  阅读(208)  评论(0编辑  收藏  举报