zoukankan      html  css  js  c++  java
  • 在Python中进行JSON转化

    序列化,指的是把内存中的变量(如类的实例)变成可存储或可传输的过程。

    JSON(JavaScript Object Notation, JavaScript对象表示)是网络传输中经常使用的一种数据形式。

    在Python中,经常将字典转化成JSON来发送,使用的主要方法为dumps

    import json
    
    data = {'name':'nick',
                'age':12}
    data_json = json.dumps(data)

    注意以下几点:

    1.data_json为转换后的JavaScript对象,在JavaScript对象里,key值默认为字符串格式

    2.data_json中的key的顺序与data中的顺序不保证相同

    3.data还可以是str,list,tuple,int等其他类型,这时也会对data进行相应的转化

    4.data_json的数据类型为str

    将JSON格式的数据转化为Python中的dict时,应使用loads

    data = json.loads(data_json)

    这时,data中所有的字符串默认均为unicode,因为JSON标准规定的编码为UTF-8

    注意:对于文件的JSON处理,应使用dump,load

    要想JSON化类的实例,应在dumps中指定可选参数default,如:

    def func(obj):

    def foo(obj):
        return {'name':obj.name,
                    'age':obj.age}        

    此后使用 data_json = json.dumps(s, default = foo) 即可序列化类的实例s

    更简便的方法是:

    json.dumps(s, default = lambda x: x.__dict__)

    要得到JSON反序列化的类的实例,可使用loads的object_hook参数:

    def bar(obj):
        return Person(obj['name'], d['age'])

    c = json.loads(data_json, object_hook = bar)

    此时得到的c为Person类的一个实例

     

      

  • 相关阅读:
    并行和并发
    怎样用第三方开源免费软件portecle从https站点上导出SSL的CA证书?
    我持续推动Rust语言支持Windows XP系统
    Android——4.2.2 文件系统文件夹分析
    hadoop(八)
    自己定义html中a标签的title提示tooltip
    多个返回 顶部的代码
    同学们,OpenCV出3.0了,速去围观!
    hdu1002
    好记性不如烂笔头(一)
  • 原文地址:https://www.cnblogs.com/geeklove01/p/8034456.html
Copyright © 2011-2022 走看看