json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

在python中,json的数据格式与字典很像,json的引号为双引号,不存在元组,集合类型,如果在序列化时有元组,集合类型会被转成列表形式

+-------------------+---------------+

| Python | JSON |

+===================+===============+

| dict | object |

+-------------------+---------------+

| list, tuple | array |

+-------------------+---------------+

| str | string |

+-------------------+---------------+

| int, float | number |

+-------------------+---------------+

| True | true |

+-------------------+---------------+

| False | false |

+-------------------+---------------+

| None | null |

+-------------------+---------------+

json序列化操作

importjson

dic= {'a':1,'b':'yyf','c':['1',2],'d':('x','y')}

jsn=json.dumps(dic)print(jsn)

json.dump(dic,open('01.txt','w',encoding='utf-8'))

{"a": 1, "b": "yyf", "c": ["1", 2], "d": ["x", "y"]}

json反序列化操作

with open('01.txt','r',encoding='utf-8') as f:

str1=f.read()print(json.loads(str1))

dic= json.load(open('01.txt','r',encoding='utf-8'))print(dic)

{'a': 1, 'b': 'yyf', 'c': ['1', 2], 'd': ['x', 'y']}

使用json.dumps()序列化时间对象

在JSONEncoder中的default方法

def default(self, o):"""Implement this method in a subclass such that it returns

a serializable object for ``o``, or calls the baseimplementation

(to raise a ``TypeError``).

For example, to support arbitrary iterators, you could

implementdefault like this::

defdefault(self, o):try:

iterable=iter(o)

except TypeError:

passelse:returnlist(iterable)

# Let thebase class defaultmethod raise the TypeErrorreturn JSONEncoder.default(self, o)""" raise TypeError(f'Object of type {o.__class__.__name__}'f'is not JSON serializable')

以上代码可以看出如果json.dump不支持的数据类型则会报错

"""TypeError: Object of type 'datetime' isnot JSON serializable

TypeError: Object of type'date' isnot JSON serializable"""

因此我们要重写default方法

import jsonfromdatetime import datetime,dateclassMyJson(json.JSONEncoder):

defdefault(self, o):ifisinstance(o,datetime):return o.strftime('%Y-%m-%d %X')

elif isinstance(o,date):return o.strftime('%Y-%m-%d')else:

super().default(self,o)

res= {'c1':datetime.now(),'c2':date.today()}

print(json.dumps(res,cls=MyJson))

这样就可以实现json.dump支持时间对象类型了

pickle

pickle是python中的特有类型,用于python的数据类型间进行转换

支持python中的所有原生类型:布尔值,整数,浮点数,复数,字符串,字节,None

支持由任何原生类型组成的列表,元组,字典和集合

支持函数,类,类的实例

pickle序列化

importpickle

dic= {'a':'b'}

f= open('01.txt','wb')

pickle.dump(dic,f)

f.close()

res=pickle.dumps(dic)print(res)

b'\x80\x03}q\x00X\x01\x00\x00\x00aq\x01X\x01\x00\x00\x00bq\x02s.'

pickle反序列化

with open('01.txt','rb') as f:

str=f.read()

lst=pickle.loads(str)

res=pickle.load(f)print(res)print(lst)

{'a': 'b'}

{'a': 'b'}

python处理grd格式文件_python json pickle 模块相关推荐

  1. 如何将csv格式文件转换为Json格式文件?

    如何使用python将csv格式文件转换为Json格式文件? 文章目录 如何使用python将csv格式文件转换为Json格式文件? 前言 一.使用execl方式打开csv文档 二.python转换代 ...

  2. python获取的html转换为json,python读取XML格式文件并转为json格式

    XML文件如下: 红楼梦书名> 曹雪芹作者> 描述贾宝玉和林黛玉的爱情故事主要内容> 人民文学出版社出版社> 图书> 一.python读取XML格式文件代码: impor ...

  3. python如何打开npy文件_python实现npy格式文件转换为txt文件操作

    如下代码会将npy的格式数据读出,并且输出来到控制台: import numpy as np ##设置全部数据,不输出省略号 import sys np.set_printoptions(thresh ...

  4. python读取特殊格式文件

    python读取特殊格式文件 1.pytorch读取lmdb格式文件 参考文献 做深度学习/数据分析,数据读取是基础.必需的一环.特整理,以待后用. 1.pytorch读取lmdb格式文件 内容来源于 ...

  5. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

  6. Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略

    Python:pmml格式文件的简介.安装.使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略 目录 pmml格式文件的简介 1.PMML结构 pmml安装 pmm ...

  7. python 读取csv文件转成字符串,python实现csv格式文件转为asc格式文件的方法

    一.背景描述 csv格式文件是一种类似于excel的文件格式 asc格式文件是一种可以用text打开的文本文件 csv转asc本来可以用arcgis顺利完成,但由于csv数据量太大(744万行),ar ...

  8. python操作xlsx格式文件

    python操作xlsx格式文件 一.准备工作 二 .xlrd库读取 三.pandas库读取 1.安装pandas: pip install pandas 2.代码如下 3.操作行列 一.准备工作 二 ...

  9. csv加header python_用python处理csv格式文件

    用python处理csv格式文件 在各种平台上获取数据时,我们常常获得的是csv格式的文件.csv格式是一种逗号分隔值的文件格式,它并不是非常reader-friendly.所幸,python标准库中 ...

  10. python读取各种格式文件方式

    python读取各种格式文件方式 1.读取图片并显示 #方法1 from PIL import Image img=Image.open('1.jpg') img.show() #方法2 import ...

最新文章

  1. 循环神经网络实现文本情感分类之使用LSTM完成文本情感分类
  2. 一张图看懂字节跳动8年创业史,一路逆袭!
  3. mysql慢查询检查流程_简单谈谈MySQL优化利器-慢查询
  4. 链方法[C# 基础知识系列]专题三:如何用委托包装多个方法——委托链
  5. vue或js解析文件excel表格js通过插件解析表格读取文件
  6. 11相机不流畅_小米11有望本月发布,小米10退位让贤,256GB版本跌至3799
  7. 时间管理类APP的Demo版本
  8. 数据通路习题分析之二
  9. Java的String/byte[]/16进制相互转换
  10. 树和二叉树总结(三)—BST二叉排序树
  11. spring cloud中微服务之间的调用以及eureka的自我保护机制
  12. 在 Mac 上的“照片”中如何更改文件的储存位置?
  13. ***抓鸡和上传方法
  14. 模式识别与智能系统类毕业论文文献都有哪些?
  15. 不可不知的CPU风扇清理技巧
  16. python怎么跑数据_python定时重跑获取数据
  17. 主板电源开关接口图解_电脑主板上的电源开关插头怎么接啊
  18. Vue Vue项目里面使用的$refs与$ref是什么意思,有什么用?
  19. linux怎么断网怎么使用yum_电脑突然断网,连接不上网络怎么办?三种方法轻松找回...
  20. 【淘宝SEO】搜索诊断助手新增作弊检测

热门文章

  1. HTML5教程之FileList文件列表对象的应用
  2. python实训报告5000字_实训总结5000字
  3. Word文档中批量修改英文、中文或数字等的字体和格式的方法
  4. windows系统重装(绝对干净)、备份还原、引导修复步骤
  5. 支付宝支付接口的调用
  6. todd的hadoop world的ppt笔记
  7. win7设置电脑保护眼睛颜色(终极方法,提供两种颜色选择)
  8. 关于python语言、下列说法不正确的是-模拟试卷C【单项选择题】
  9. H5游戏开发:H5设计的方向有哪些
  10. 通过U盘安装windows简易教程