zoukankan      html  css  js  c++  java
  • python json模块(15)

       

    JSON 的全称是 JavaScript Object Notation,即 JavaScript 对象符号,它是一种轻量级、跨平台、跨语言的数据交换格式,其设计意图是把所有事情都用设计的字符串来表示,这样既方便在互联网上传递信息,也方便人进行阅读。

        JSON 主要在类似于C 的编程语言中广泛使用,这些语言包括 C、C++、C#、Java、JavaScript、Perl、Python 等。JSON 提供了多种语言之间完成数据交换的能力,因此,JSON 也是一种非常理想的数据交换格式。

    json

    一.python json模块简介

        json 模块提供了对 JSON 的支持,它既包含了将 JSON 字符串恢复成 Python 对象的函数,也提供了将 Python 对象转换成 JSON 字符串的函数。

        json.dumps() — json模块里的dumps函数是对数据进行编码,形成json格式的数据;

        json.loads() — loads函数则是将json格式的数据解码,转换为Python字典;

    python-json
     
     

    二.json转换到python

     

    json转python

     

    import json
     
    data_str = '{"url": "www.shuopython.com", "name": "猿说python", "contents": "python教程"}'
    data_dict = json.loads(data_str)
    print(data_dict)
    print(type(data_dict))

        输出结果:

        注意:data_str 是json字符串,并非字典也并非字符串str

     

    三.python转换到json

     

    python转json

     

        在使用dump/dumps时可能会使用到以下参数:

        skipkey:默认为False,当dict对象里的数据不是Python的基本数据类型;(str,unicode,int,long,float,bool,None)时,当skipkey为False,就会报错,如果skipkey为True,则可以跳过这类key;

        indent:如果填0或者不填,则按照一行进行打印,否则按照indent的数值显示前面的空格(正整数形式);

        separators:分隔符,默认为“(‘,’,’:’)”,它表示key之间用“,”隔开,key和value之间用“:”隔开;

        encoding:编码格式,默认值是UTF-8;

        sort_keys:对key、value进行排序,默认值是False,即不排序;

        ensure_ascii:默认为True,如果dict对象里含有none-ASCII的字符,则显示uXX的格式,如果为False,则能正常显示出来(解决中文乱码问题);

    # !usr/bin/env python
    # -*- coding:utf-8 _*-
    """
    @Author:何以解忧
    @Blog(个人博客地址): shuopython.com
    @WeChat Official Account(微信公众号):猿说python
    @Github:www.github.com
     
    @File:python_json.py
    @Time:2019/11/08 21:25
     
    @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
    """
     
     
    import json
     
    data_dict = {"url": "www.shuopython.com", "name": "猿说python", "contents": "python教程"}
     
    # ensure_ascii 默认为True,如果有中文,显示uXX的格式;设置为False可解决中文显示不正常问题
    json1 = json.dumps(data_dict, ensure_ascii=False,indent=4) # indent 字符缩进,输出更加美观
    print(json1)
    print(type(json1))

     

    输出结果:

    {
        "url": "www.shuopython.com",
        "name": "猿说python",
        "contents": "python教程"
    }
    <class 'str'>

     

     

    四.关于json.dump()和 json.load()

        相对于上面所讲的dumps和loads来说,dump和load函数的功能类似,只不过前者是用来处理字符串类型的,而后者是用于处理文件类型的,如下所示:

    import json
     
     
    data = {'str3':'xyz','str2' :'efgh','str1':'abcd'}
    with open(' data. txt', '', encoding='utf-8') as f:
        json.dump(data, f, indent=4)   # f. write (json.dumps (data, indent=4))  #和上面的效果一样
     
    with open(' data. txt', 'r') as f:
        d2 = json.load(f)  #d2 = json.loads (f. read())#和上面的效果一样

     

     

    猜你喜欢:

        1.python time模块

        2.python sys模块

        3.python不定长参数*argc,**kargcs

        4.python匿名函数lambda

        5.python递归函数

        6.python异常处理

     

        转载请注明:猿说Python » python json模块

     

    技术交流、商务合作请直接联系博主
    扫码或搜索:猿说python
    python教程公众号
    猿说python
    微信公众号 扫一扫关注
  • 相关阅读:
    利用QObject反射实现jsonrpc
    使用libuv实现生产者和消费者模式
    std::function赋值的几种方法
    Qt postEvent
    Qt由pcm数据生成wav文件
    Qt websocket协议的实现
    Python中json.dump() 和 json.dumps()的区别
    Appium环境搭建(Mac)
    Mac上搭建Python集成环境
    Mac OS终端利器iTerm2(完美替代bash)
  • 原文地址:https://www.cnblogs.com/shuopython/p/12081280.html
Copyright © 2011-2022 走看看