Python json模块

ChatGPT 3.5 国内中文镜像站免费使用啦

零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门

一.前言

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

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

图片[1]-Python json模块-猿说编程

二.python json模块常用函数

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

  • json.dumps — 对数据进行编码,形成 json 格式的数据;
  • json.loads  — 将 json 格式的数据解码,转换为 Python 字典 dict ;
图片[2]-Python json模块-猿说编程

三.json 转 Python 字典 dict

图片[3]-Python json模块-猿说编程
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python json模块.py
@Time:2021/04/01 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
 
"""

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))


'''
输出结果:
{'url': 'www.shuopython.com', 'name': '猿说python', 'contents': 'python教程'}
<class 'dict'>
'''

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


四.Python 字典 dict 转 json

图片[4]-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(个人博客地址): www.codersrc.com
@File:Python json模块.py
@Time:2021/04/01 07:37
@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 函数的功能类似,只不过前者是用来处理字符串类型的,而后者是用于处理文件类型的,如下所示:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python json模块.py
@Time:2021/04/01 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
 
"""

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 配置环境
  2. Python 变量
  3. Python 运算符
  4. Python 条件判断 if/else
  5. Python while循环
  6. Python break
  7. Python continue
  8. Python for循环
  9. Python 字符串
  10. Python 列表list
  11. Python 元组tuple
  12. Python 字典 dict
  13. Python 条件推导式
  14. Python 列表推导式
  15. Python 字典推导式

ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
THE END
喜欢就支持一下吧
点赞3 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容