1、json.dumps()

 json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。

转换案例:

 1 import json
2
3 name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
4
5 jsObj = json.dumps(name_emb)
6
7 print(name_emb)
8 print(jsObj)
9
10 print(type(name_emb))
11 print(type(jsObj))

json.dumps()用于将dict类型的数据转成str

1     {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
2 {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
3 <type 'dict'>
4 <type 'str'>

运行结果

若在数据写入json文件时,没有转格式,报错如下

    import json    

    name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}    

    emb_filename = ('/home/cqh/faceData/emb_json.json')    

    # jsObj = json.dumps(name_emb)      

    with open(emb_filename, "w") as f:
f.write(name_emb)
f.close()

未转换时候的错误示例

2、json.loads()

   json.loads()用于将str类型的数据转成dict

 1 import json
2
3 name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
4
5 jsDumps = json.dumps(name_emb)
6
7 jsLoads = json.loads(jsDumps)
8
9 print(name_emb)
10 print(jsDumps)
11 print(jsLoads)
12
13 print(type(name_emb))
14 print(type(jsDumps))
15 print(type(jsLoads))

json.loads()用于将str类型的数据转成dict

    {'a': '1111', 'c': '3333', 'b': '2222', 'd': '4444'}
{"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
{u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
<type 'dict'>
<type 'str'>
<type 'dict'> #注:'a'变成了u'a'是因为发生了类型转换,str会转换成unicode

运行结果如下:

注:'a'变成了u'a'是因为发生了类型转换,str会转换成unicode

3、json.dump()

  json.dump()用于将dict类型的数据转成str,并写入到json文件中。下面两种方法都可以将数据写入json文件

 1     import json
2
3 name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
4
5 emb_filename = ('/home/cqh/faceData/emb_json.json')
6
7 # solution 1
8 jsObj = json.dumps(name_emb)
9 with open(emb_filename, "w") as f:
10 f.write(jsObj)
11 f.close()
12
13 # solution 2
14 json.dump(name_emb, open(emb_filename, "w"))

json.dump()用于将dict类型的数据转成str,并写入到json文件中。

 4、json.load()

 json.load()用于从json文件中读取数据。

 1     import json
2
3 emb_filename = ('/home/cqh/faceData/emb_json.json')
4
5 jsObj = json.load(open(emb_filename))
6
7 print(jsObj)
8 print(type(jsObj))
9
10 for key in jsObj.keys():
11 print('key: %s value: %s' % (key,jsObj.get(key)))

json.load()用于从json文件中读取数据。

1     {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
2 <type 'dict'>
3 key: a value: 1111
4 key: c value: 3333
5 key: b value: 2222
6 key: d value: 4444

结果

【Python】Json序列化和反序列化模块dumps、loads、dump、load函数介绍的更多相关文章

  1. python json序列化与反序列化操作

    python json序列化与反序列化操作 # dumps() dict-->str 序列化 # loads() str---dict 反序列化 result1 = json.dumps({'a ...

  2. Python Json序列化与反序列化

    在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象.在python的标准库中,专门提供了json ...

  3. 细说【json&pickle】dumps,loads,dump,load的区别

    1 json.dumps() json.dumps()是将字典类型转化成字符串类型. import json name_emb = {'a':'1111','b':'2222','c':'3333', ...

  4. Python中的Json模块dumps、loads、dump、load函数介绍

    Json模块dumps.loads.dump.load函数介绍 1.json.dumps() json.dumps() 用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json ...

  5. Python库:序列化和反序列化模块pickle介绍

    1 前言 在“通过简单示例来理解什么是机器学习”这篇文章里提到了pickle库的使用,本文来做进一步的阐述. 通过简单示例来理解什么是机器学习 pickle是python语言的一个标准模块,安装pyt ...

  6. python:序列化与反序列化(json、pickle、shelve)

    本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...

  7. python的序列化和反序列化以及json

    python 的序列化和反序列化用于内存之间的共享,包括服务器和客户端的共享,两个Python程序之间的共享,以及以字符串的形式存储到硬盘中. pyhton 的pickle 可以对Python的各种数 ...

  8. Python实现JSON序列化和反序列化

    在我的应用中,序列化就是把类转成符合JSON格式的字符串,反序列化就是把JSON格式的字符串转换成类.C#的话直接用Newtonsoft.JSON就可以了,非常好用.本来以为python也会有类似的库 ...

  9. Json模块dumps、loads、dump、load函数介绍

    转自:http://blog.csdn.net/mr_evanchen/article/details/77879967 Json模块dumps.loads.dump.load函数介绍 1.json. ...

随机推荐

  1. UVA 10635 Prince and Princess—— 求LCS(最长公共子序列)转换成 求LIS(最长递增子序列)

    题目大意:有n*n个方格,王子有一条走法,依次经过m个格子,公主有一种走法,依次经过n个格子(不会重复走),问他们删去一些步数后,重叠步数的最大值. 显然是一个LCS,我一看到就高高兴兴的打了个板子上 ...

  2. scp带密码拷贝文件

    应用场景:将B服务器的文件传输到A服务器.核心命令: sshpass -p 123456 scp ubuntu@192.168.52.1:/home/ubuntu/"TEST"'' ...

  3. python GDAL 读写shp文件

    gdal包用于处理栅格数据,ogr用于处理矢量数据. 1 #!C:\Program Files\pythonxy\python\python.exe 2 #-*- coding:gb2312 -*- ...

  4. Flutter Webview添加Cookie的正确姿势

    场景 h5页面要从cookie里面取数据,所以需要在flutter webview的cookie里面塞一些数据,设置的数据多达十几条:按照网上查的使用方式来设置,通过fiddler抓包发现,只能生效一 ...

  5. VirtualXposed结合justTrustMe 模块傻瓜式破解app没法抓包问题

    一.首先就是按照这两个apk 声明仅供学习 justTrustMe 链接:https://pan.baidu.com/s/1av3oaez4y4n6a9C1I0VsAg 提取码:mjqg Virtua ...

  6. ps基本工具

    2.1PS移动工具 (1)快捷键:V. (2)多对象跨窗口移动的时候,按住键盘的shift再按鼠标左键拖拽可以快速定位到中心位置. (3)图层,一层层透明纸张叠加到一块的显示效果,每张透明的纸张上都有 ...

  7. ElasticSearch实战系列九: ELK日志系统介绍和安装

    前言 本文主要介绍的是ELK日志系统入门和使用教程. ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一 ...

  8. Pyqy5 让窗口居中

    # QDesktopWidget import sys from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication from ...

  9. Paraview教程

    快速入门 https://www.youtube.com/watch?time_continue=1017&v=Y1RATo2swM8 Cyprien Rusu系列 Paraview Vide ...

  10. 【应用服务 App Service】App Service使用Git部署时,遇见500错误

    问题描述 Azure App Service在部署的时候支持多种方式,如Zip,VS 2019, VS Code,或者是Git部署,当使用Git部署遇见500错误时,可以通过其他的部署方式来验证是否也 ...