zoukankan      html  css  js  c++  java
  • python的json模块的dumps,loads,dump,load方法介绍

    dumps和loads方法都在内存中转换,
    dump和load的方法会多一个步骤,dump是把序列化后的字符串写到一个文件中,而load是从一个文件中读取字符串

    将列表转为字符串

    >>> a=[1,2,3,4,5]
    >>> import json
    >>> json.dumps(a)
    '[1, 2, 3, 4, 5]'
    >>> type(json.dumps(a))
    <class 'str'>
    >>> 

    将字典转化为字符串

    >>> b={"cc":12,"vv":33}
    >>> json.dumps(b)
    '{"cc": 12, "vv": 33}'
    >>> type(json.dumps(b))
    <class 'str'>

    将字符串转为列表

    >>> f=json.dumps(a)
    >>> f
    '[1, 2, 3, 4, 5]'
    >>> json.loads(f)
    [1, 2, 3, 4, 5]

    将字符串转为字典

    >>> k=json.dumps(b)
    >>> k
    '{"cc": 12, "vv": 33}'
    >>> json.loads(k)
    {'cc': 12, 'vv': 33}
    >>> 

    字符串转字典

    #coding=utf-8
    import requests
    import json
    #
    ret = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')
    ret.encoding = 'utf-8'
    s1 = ret.text
    print(s1,type(s1))
    
    d1 = json.loads(s1)
    print(d1,type(d1))

    输出

    {
        "data": {
            "yesterday": {
                "date": "16日星期六",
                "high": "高温 3℃",
                "fx": "北风",
                "low": "低温 -6℃",
                "fl": "<![CDATA[3-4级]]>",
                "type": ""
            },
            "city": "北京",
            "forecast": [{
                "date": "17日星期天",
                "high": "高温 6℃",
                "fengli": "<![CDATA[<3级]]>",
                "low": "低温 -4℃",
                "fengxiang": "北风",
                "type": ""
            }, {
                "date": "18日星期一",
                "high": "高温 4℃",
                "fengli": "<![CDATA[<3级]]>",
                "low": "低温 -3℃",
                "fengxiang": "南风",
                "type": ""
            }, {
                "date": "19日星期二",
                "high": "高温 7℃",
                "fengli": "<![CDATA[<3级]]>",
                "low": "低温 -4℃",
                "fengxiang": "西南风",
                "type": "多云"
            }, {
                "date": "20日星期三",
                "high": "高温 9℃",
                "fengli": "<![CDATA[<3级]]>",
                "low": "低温 -4℃",
                "fengxiang": "北风",
                "type": ""
            }, {
                "date": "21日星期四",
                "high": "高温 11℃",
                "fengli": "<![CDATA[<3级]]>",
                "low": "低温 -3℃",
                "fengxiang": "西南风",
                "type": ""
            }],
            "ganmao": "各项气象条件适宜,无明显降温过程,发生感冒机率较低。",
            "wendu": "-2"
        },
        "status": 1000,
        "desc": "OK"
    } < class 'str' > 

    {
    'data': { 'yesterday': { 'date': '16日星期六', 'high': '高温 3℃', 'fx': '北风', 'low': '低温 -6℃', 'fl': '<![CDATA[3-4级]]>', 'type': '' }, 'city': '北京', 'forecast': [{ 'date': '17日星期天', 'high': '高温 6℃', 'fengli': '<![CDATA[<3级]]>', 'low': '低温 -4℃', 'fengxiang': '北风', 'type': '' }, { 'date': '18日星期一', 'high': '高温 4℃', 'fengli': '<![CDATA[<3级]]>', 'low': '低温 -3℃', 'fengxiang': '南风', 'type': '' }, { 'date': '19日星期二', 'high': '高温 7℃', 'fengli': '<![CDATA[<3级]]>', 'low': '低温 -4℃', 'fengxiang': '西南风', 'type': '多云' }, { 'date': '20日星期三', 'high': '高温 9℃', 'fengli': '<![CDATA[<3级]]>', 'low': '低温 -4℃', 'fengxiang': '北风', 'type': '' }, { 'date': '21日星期四', 'high': '高温 11℃', 'fengli': '<![CDATA[<3级]]>', 'low': '低温 -3℃', 'fengxiang': '西南风', 'type': '' }], 'ganmao': '各项气象条件适宜,无明显降温过程,发生感冒机率较低。', 'wendu': '-2' }, 'status': 1000, 'desc': 'OK' } < class 'dict' >

    将字典存入文件中,再从文件读取出来

    #coding=utf-8
    import json
    d1 = {'name':'foot'}
    
    '''
    第一种写法
    json.dump(d1,open('db','w'))
    d1 = json.load(open('db','r'))
    print(d1,type(d1))
    '''
    
    #第二种写法
    with open("db","w") as f:
        json.dump(d1,f)
    
    with open("db","r") as f:
        print(json.load(f))

    参考:

    http://www.cnblogs.com/bainianminguo/p/6676067.html

  • 相关阅读:
    第五章 面向方面编程___通知类型
    从 C++ 到ObjectiveC
    iPhone/Mac ObjectiveC内存管理教程和原理剖析(三)@property (retain)和@synthesize的默认实现
    两个操作字符串的方法:读取指定位置的字符和找出某个字符串的位置
    SQLITE3使用总结
    iphone中如何进行多线程编程
    sqlite数据库在IOS中的运用
    重载、覆盖、隐藏
    (转)c/c++ 内存管理
    iPhone/Mac ObjectiveC内存管理教程和原理剖析(四)系统自动创建新的autorelease pool
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10393198.html
Copyright © 2011-2022 走看看