服务器之家

服务器之家 > 正文

Python 的Json 模块编码详解

时间:2022-03-09 13:02     来源/作者:m0_64430632

可以用函数 json.dumps()将 Python 对象编码转换为字符串形式。

例如:

?
1
2
3
4
import json
python_obj = [[1,2,3],3.14,'abc',{'key1':(1,2,3),'key2':[4,5,6]},True,False,None]
json_str=json.dumps(python_obj)
print(json_str)

输出:

[[1, 2, 3], 3.14, "abc", {"key1": [1, 2, 3], "key2":
[4, 5, 6]}, true, false, null]

简单类型对象编码后的字符串和其原始的 repr()结果基本是一致的,但有些数据类型,如上例中的元组(1, 2, 3)被转换成了[1, 2, 3](json 模块的 array 数组形式)。
可以向函数 json.dumps()传递一些参数以控制转换的结果。例如,参数 sort_keys=True 时,dict 类型的数据将按key(键)有序转换:

?
1
2
3
4
5
data = [{'xyz': 3.0,'abc': 'get', 'hi': (1,2) },'world','hello']
json_str = json.dumps(data)
print(json_str)
json_str = json.dumps(data, sort_keys=True)
print(json_str)

输出:

[{"xyz": 3.0, "abc": "get", "hi": [1, 2]}, "world", "hello"]
[{"abc": "get", "hi": [1, 2], "xyz": 3.0}, "world", "hello"]

即当 sort_keys=True 时,转换后的 json 串对于字典的元素是按键(key)有序的。
对于结构化数据,可以给参数 indent 设置一个值(如 indent=3)来产生具有缩进的、阅读性好的json 串:

?
1
2
json_str = json.dumps(data, sort_keys=True,indent = 3)
print(json_str)

输出:

[
    {
        "abc": "get",
        "hi": [
            1,
            2
        ],
        "xyz": 3.0
    },
    "world",
    "hello"
]

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/m0_64430632/article/details/121598998

标签:

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
返回顶部