Python常用模块--json
官方解释:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。人类很容易读写。机器很容易解析和生成。它基于 JavaScript编程语言的一部分, 标准ECMA-262第3版 - 1999年12月。JSON是一种完全独立于语言的文本格式,但使用C语言系列程序员熟悉的约定,包括C,C ++,C#,Java,JavaScript,Perl,Python等等。这些属性使JSON成为理想的数据交换语言。
JSON基于两种结构:
- 名称/值对的集合。在各种语言中,这被实现为对象,记录,结构,字典,散列表,键控列表或关联数组。
- 有序的值列表。在大多数语言中,这被实现为数组,向量,列表或序列。
这些是通用数据结构。实际上,所有现代编程语言都以某种形式支持它们。有意义的是,可与编程语言互换的数据格式也基于这些结构。
Python 中的json模块,官方介绍:https://docs.python.org/3.7/library/json.html
在python中,有专门处理json格式的模块—— json 和 picle模块
Json 模块提供了四个方法: dumps、dump、loads、load
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
1.将Python对象转换为json格式:
dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False, **kw):
# 将生成的json串,直接存入指定的文件中,没有返回值
dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False, **kw):
# 将生成的json串返回 其他参数说明:
skipkeys:默认False,如果传入的obj是字典类型,且字典的key类型不在(``str``, ``int``, ``float``, ``bool``, ``None``)中,会报格式错误,如有,则设为Ture;
ensure_ascii:默认True,设为False时,中文显示正常;
check_circular:默认Ture,设为False时,会跳过循环引用检查,如果循环引用出错会导致溢出错误;
sort_keys:默认False,设为True时,生成的json按照key值进行排序
上代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "问道编程"
__date__ = "2019/03/18 17:50" import json print('---------------\n字符串转换:')
a = "\"foo\bar"
result = json.dumps(a) # 返回生成的json串
print('a = ', a)
print('result:', result) # 可以发现 result 和 a 在显示上一样 但是打印结果不同 说明不是一样的
print('类型:', type(result))
print('---------------\n将转换后的json写入文件:')
myfile = open('a.json', 'w')
a = [1, 2, 3, {'4': 5, '6': 7}]
json.dump(a, myfile, indent=4) # 没有返回值
myfile.close()
2.将json转换为Python对象:
load(fp, *, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
# 从文件中读取json串,转换为Python对象返回
loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None,parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
# 将json串直接转换为Python对象
上代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "问道编程"
__date__ = "2019/03/18 17:50" import json print('---------------\n转换为列表:')
json_str = '["foo", {"bar":["baz", null, 1.0, 2]}]'
result = json.loads(json_str) # 将json串转换为Python对象
print('json_str = ', json_str)
print('result:', result)
print('json_str类型:', type(json_str))
print('result类型:', type(result))
print('---------------\n从文件中解码json:')
myfile = open('a.json', 'r')
result = json.load(myfile)
print('result:', result)
print('result类型:', type(result))
Python常用模块--json的更多相关文章
- python常用模块json
python jons模块 json模块 主要是解决数据格式的转换问题,比如python接收到json对象需要转换为python对象,供python处理,亦或者python数据需要发送到其给其他客户端 ...
- Python常用模块——json & pickle
序列化模块 1.什么是序列化-------将原本的字典,列表等对象转换成一个字符串的过程就叫做序列化 2.序列化的目的 1.以某种存储形式使自定义对象持久化 2.将对象从一个地方传递到另一个地方 3. ...
- python常用模块json、os、sys
一.序列化 json & pickle 模块 json--用于字符串和Python数据类型间进行转换 pickle---用于python特有的类型和Python的数据类型间进行转换 json: ...
- Python常用模块——目录
Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...
- python常用模块集合
python常用模块集合 Python自定义模块 python collections模块/系列 Python 常用模块-json/pickle序列化/反序列化 python 常用模块os系统接口 p ...
- python常用模块之json、pickle模块
python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...
- python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则
python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess ...
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
- python——常用模块2
python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") loggin ...
随机推荐
- linux space/mark设置
参考链接: http://blog.csdn.net/zhaozh2000/article/details/6460223 串口数据的发送: 数据的发送: 数据位+检验位+停止位, 进行数据的发送.( ...
- python - class内置方法 doc/module/del(析构方法)/cal 方法
__doc__ # __doc__ #摘要信息 #这个属性不会继承给子类 class Test(): """这是摘要信息""" pass x ...
- Informatic学习总结_day03_update组件学习
- python之random模块分析(一)
random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): 这是一个产生整数随机数的函数,参数start代 ...
- Windows系统FTP Shell
ftp open 10.0.0.0.2 21101 user passwd ls cd pwd delete get /home/err.log Error.log put err.log /home ...
- 移动端中遇到的坑(bug)!!!
1.模拟单选点击的时候,在ios手机下,点击下面的内容选择,会出现页面闪一闪!! 解决方案:样式重置html的时候加上这句 -webkit-tap-highlight-color: rgba(0, ...
- 创建虚拟机时,提示No valid host was found解决办法
1.http://blog.csdn.net/yxwmzouzou/article/details/43892261 2.http://www.cnblogs.com/kevingrace/p/601 ...
- MVC 带扩展名的路由无法访问
在MVC中,路由是必不可少的,而且MVC对Url的重写非常方便,只需要在路由中配置相应的规则即可.假如我们需要给信息详情页配置路由,代码如下: routes.MapRoute( name: " ...
- 【转】C/C++内存泄漏及检测
“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败.内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用ma ...
- HDU 3579
标准同余方程组,只是在求出值后如果为0,应该输出Mi的Lcm: #include<iostream> #include<cstdio> #include<cstring& ...