目录
- 一.前言
- 二.python json 模块常用函数
- 三.json 转 Python 字典 dict
- 四.Python 字典 dict 转 json
- 五.关于 json.dump 和 json.load
- 六.猜你喜欢
零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门
一.前言
JSON 的全称是 JavaScript Object Notation,即 JavaScript 对象符号,它是一种轻量级、跨平台、跨语言的数据交换格式,其设计意图是把所有事情都用设计的字符串来表示,这样既方便在互联网上传递信息,也方便人进行阅读。
JSON 主要在类似于 C 的编程语言中广泛使用,这些语言包括 C、C++、C#、Java、JavaScript、Perl、Python 等。JSON 提供了多种语言之间完成数据交换的能力,因此,JSON 也是一种非常理想的数据交换格式。
二.python json 模块常用函数
json 模块提供了对 JSON 的支持,它既包含了将 JSON 字符串恢复成 Python 对象的函数,也提供了将 Python 对象转换成 JSON 字符串的函数。
- json.dumps — 对数据进行编码,形成 json 格式的数据;
- json.loads — 将 json 格式的数据解码,转换为 Python 字典 dict ;
三.json 转 Python 字典 dict
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:Python json模块.py
@Time:2021/04/01 07:37
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!"""import jsondata_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
在使用 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 jsondata_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 jsondata = {'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())#和上面的效果一样
六.猜你喜欢
- Python 配置环境
- Python 变量
- Python 运算符
- Python 条件判断 if/else
- Python while 循环
- Python break
- Python continue
- Python for 循环
- Python 字符串
- Python 列表 list
- Python 元组 tuple
- Python 字典 dict
- Python 条件推导式
- Python 列表推导式
- Python 字典推导式
未经允许不得转载:猿说编程 » Python json 模块