【python12】json字符串

使用场景:
Json数据主要用于标准化数据传输,可以应用到跨平台交互。

#coding=utf-8

'''
json字符串是一个数据转化的工具,它是双方通信的一种数据标准
举例子:张三的语言是湖北话,李四的语言是河南话,双方无法进行交流,这个时候定义一个规则大家都说普通话,然后就可以互相转化为各自的语言就可以理解对方的意思
'''

import json

class test:

    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

# 将class对象序列化为json字符串的函数
def toJson(obj):
    return {
        "a": obj.a,
        "b": obj.b,
        "c": obj.c
    }

# 将json字符串反序列化为class对象的函数
def toTest(obj):
    return test(obj['a'], obj['b'], obj['c'])


if __name__ == "__main__":

    # 将class对象转化为json字符串
    t1 = test("张三", "男", "18岁")
    t2 = test("李四", "男", "28岁")
    t3 = test("小花", "女", "20岁")

    list = []
    list.append(t1)
    list.append(t2)
    list.append(t3)
    # list = [t1, t2, t3]
    print list

    # default=toJson 传入调用哪个序列函数
    print json.dumps(list, default=toJson, encoding='utf-8')

    # 将json字符串转化为class对象
    j = '[{"a": "\u5f20\u4e09", "c": "18\u5c81", "b": "\u7537"}, {"a": "\u674e\u56db", "c": "28\u5c81", "b": "\u7537"}, {"a": "\u5c0f\u82b1", "c": "20\u5c81", "b": "\u5973"}]'
    # object_hook=toTest 传入调用哪个反序列函数
    jsonList = json.loads(j, object_hook=toTest, encoding='utf-8')
    for jl in jsonList:
        print jl.a , jl.b, jl.c
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容