• Python json


    JSON表示出来是一串字符串,可以被所有语言读取,也可以方便存储和传输

     JSON表示的对象就是JavaScript语言的对象

    JSON和Python 数据类型对应

    JSON类型Python类型
    {} dict
    [] list
    "string" str
    1234.56 int或float
    true/false True/False
    null None

    把Python对象变成JSON字符串:json.dumps()

    d = dict(name='sandy', age=20, score=18)
    print(json.dumps(d))

    ==》{"name": "sandy", "age": 20, "score": 18}

    把Python对象编程JSON字符串,并写入到文件: json.dump()

    path = 'D:\test.txt'
    with open(path, 'w') as f:
    json.dump(d, f)

     Python的dict对象可以直接序列化为JSON对象,但是如果是class对象, 不能直接序列化成JSON字符串,需要一些转换:

    可以写一个函数来实现,返回值是JSON的字符串,如:

    def stu2dict(std):
    return{
    'name': std.name,
    'age': std.age,
    'score': std.score
    }

    也可以调用class的dict属性:

    json.dumps(s, default=lambda obj: obj.__dict__)   # s是实例化的对象

    class Student(object):
    def __init__(self, name, age, score):
    self.name = name
    self.age = age
    self.score = score
    def stu2dict(std):
    return{
    'name': std.name,
    'age': std.age,
    'score': std.score
    }
    s = Student('sandy', 12, 80)
    print(json.dumps(s, default=stu2dict)) # {"name": "sandy", "age": 12, "score": 80}
    print(json.dumps(s, default=lambda obj: obj.__dict__)) # {"name": "sandy", "age": 12, "score": 80}

    对中文进行序列化的时候,参数 ensure_ascii=False

    print(json.dumps('中国', ensure_ascii=True))  # 输出"u4e2du56fd"
    print(json.dumps('中国', ensure_ascii=False)) # 输出"中国"
  • 相关阅读:
    使用 Helm【转】
    部署 Helm【转】
    Helm 架构【转】
    Why Helm?【转】
    用 ConfigMap 管理配置【转】
    js argument实参集合与局部变量、参数关系
    js 定时器
    JVM的调优
    Java异常,以及finally不会执行的情况
    Java绑定
  • 原文地址:https://www.cnblogs.com/xiaohai2003ly/p/8617606.html
Copyright © 2020-2023  润新知