Python json模块

本站已接入国内中文版 ChatGPT 镜像,欢迎大家前往体验《 国内中文 ChatGPT


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

一.前言

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

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

Python json模块 插图1

二.python json模块常用函数

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

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

三.json 转 Python 字典 dict

Python json模块 插图3
# !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

Python json模块 插图4

在使用 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 镜像,欢迎大家前往体验《 国内中文 ChatGPT

文章版权声明 1、本网站名称:猿说编程
2、本站永久网址:https://www.codersrc.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。

© 版权声明
THE END
喜欢就支持一下吧
点赞3 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容