zoukankan      html  css  js  c++  java
  • Python学习之JSON格式的序列化和反序列化

    查看json库的方法

    import  json
    print("JSON库的主要方法:",json.__all__)
    ###JSON库的主要方法: ['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder']

    dump和dumps的区别 dump是将对象序列化并保存到文件中            dumps是将对象序列化
    load和loads的区别 load将序列化字符串从文件读取并反序列化            loads将序列化字符串反序列化

    Python 字典类型转换为 JSON 对象

    import json
    # Python 字典类型转换为 JSON 对象
    data = {
        'no': 001,
        'name': 'Runoob',
        'url': 'http://www.runoob.com',
        'address':'北京'
    }
    json_str = json.dumps(data)
    json_str1 = json.dumps(data,ensure_ascii=False)
    print("原始数据类型:",type(data))
    print("Python 原始数据:", repr(data))  #repr() 函数将对象转化为供解释器读取的形式。 repr(object) 返回对象的string格式
    print('JSON对象的类型:',type(json_str),type(json_str1))
    print("JSON 对象:", json_str)
    print("JSON对象,,字符编码",json_str1)
    
    '''
    关于中文字符编码的问题
    json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False:
    import json
    print (json.dumps('中国'))
    "u4e2du56fd"
    print (json.dumps('中国',ensure_ascii=False))
    "中国"
    
    '''

    Python 字典类型转换为 JSON 对象 之后再次转换为Python类型

    反序列化,把json格式的字符串解码为python的数据对象,见实现的代码和输出:
    import  json
    dict1={'name':'lucky','age':27,'address':'深圳'}
    print ('原始数据类型为:',type(dict1))
    print ('原始的数据:',dict1)
    #对dict1进行序列化的处理
    str1=json.dumps(dict1,ensure_ascii=False)  #去掉乱码的字符显示
    print ('序列化后的数据类型为:',type(str1))
    print ('序列化后的数据为:',str1,)
    
    #对str1进行反序列化
    dict2=json.loads(str1)
    print ('反序列化后的数据类型:',type(dict2))
    print ('反序列化后的数据:',dict2)
    # Python 字典类型转换为 JSON 对象
    data1 = {
        'no': 001,
        'name': 'Runoob',
        'url': 'http://www.runoob.com',
        'address':'北京'
    }
    json_str = json.dumps(data1,ensure_ascii=False)
    print("Python 原始数据:", repr(data1))
    print("JSON 对象:", json_str)
    
    # 将 JSON 对象转换为 Python 字典
    data2 = json.loads(json_str)
    print("data2的['name']: ", data2['name'])
    print("data2链接['url']: ", data2['url'])
    print(data2 )
    #如果你要处理的是文件而不是字符串,你可以使用json.dump()和json.load()来编码和解码JSON数据。例如:
    import  json
    data = {
        'no': 001,
        'name': 'Runoob',
        'url': 'http://www.runoob.com',
        'address':'北京'
    }
    # 写入 JSON 数据
    with open('data.json', 'w') as f:
        json.dump(data, f)
    
    # 读取数据
    with open('data.json', 'r') as f:
        data = json.load(f)
        print(data)

    结合requests库,来看返回的json数据

    ####结合requests库,来看返回的json数据,具体代码为:
    
    import  json,requests
    r=requests.get('http://wthrcdn.etouch.cn/weather_mini?city=深圳')
    print (r.text,u'数据类型:',type(r.text))
    #对数据进行反序列化的操作
    dic=json.loads(r.text)
    print (dic,u'数据类型:',type(dic))
  • 相关阅读:
    springmvcdemo
    src/main/resorces applicationContext.xml
    maven 中setting.xml
    Git
    刘相兵 AWR
    Oracle 查询SQL 执行次数---hash value
    Oracle 查询重复索引列
    Oracle 史上最全近百条Oracle DBA日常维护SQL脚本指令
    Oracle 查询表对应的索引
    11g RAC 自动升级 PSU
  • 原文地址:https://www.cnblogs.com/carey9420/p/12066891.html
Copyright © 2011-2022 走看看