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模块里的dumps函数是对数据进行编码,形成json格式的数据;
json.loads() — loads函数则是将json格式的数据解码,转换为Python字典;
文章图片
二.json转换到python
文章图片
【python|python json模块】1 2 3 4 5 6 |
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)) |
1 2 |
{'url': 'www.shuopython.com', 'name': '猿说python', 'contents': 'python教程'} |
三.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,则能正常显示出来(解决中文乱码问题);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# !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)) |
1 2 3 4 5 6 |
{ "url": "www.shuopython.com", "name": "猿说python", "contents": "python教程" } |
四.关于json.dump()和 json.load()
相对于上面所讲的dumps和loads来说,dump和load函数的功能类似,只不过前者是用来处理字符串类型的,而后者是用于处理文件类型的,如下所示:
1 2 3 4 5 6 7 8 9 |
import json data = https://www.it610.com/article/{'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每日一练(牛客新题库)——第15天(综合练习)
- python|python beautifulsoup爬虫_python爬虫数据解析之BeautifulSoup
- python|JS逆向之抖音登陆及验证码绕过
- 爬虫案例合集|谷歌地图案例
- 抖音-python|抖音新版signature分析
- matplotlib库简单的代码举例
- Python|Python标准库
- Python常用基础语法知识点大全
- 目标检测|项目实战工具|目标检测评价map精细化系列工具