转自:http://blog.csdn.net/mr_evanchen/article/details/77879967

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

1、json.dumps()

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

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

运行结果如下:

  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文件时,未先进行转换,报错如下

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

转换后再写入,则不报错

2、json.loads()

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

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

运行结果如下:

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

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

 3、json.dump()

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

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

运行结果如下:

 4、json.load()

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

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

运行结果如下:

    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

Json模块dumps、loads、dump、load函数介绍的更多相关文章

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

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

  2. Python json模块dumps loads

    python中json数据的使用. dumps和loads也是需要成对使用的,就像c++ new/delete malloc/free一样需要成对使用. 看着像json的字符串,也不一定是json字符 ...

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

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

  4. Json模块(dumps、loads、dump、load)函数篇

    # dumps.loads函数 """json.dumps()用于将dict类型的数据转成strjson.loads()用于将str类型的数据转成dict. " ...

  5. JSON实现序列化dump和dumps方法,JSON实现反序列化loads和load方法

    通过文件操作,我们可以将字符串写入到一个本地文件.但是,如果是一个对象(例如列表.字典.元组等),就无 法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里. 设计一套协议,按照某种 ...

  6. 函数和常用模块【day04】:函数介绍(一)

    本节内容 1.函数介绍 2.函数定义 3.为什么要使用函数 一.介绍 在我们以往的学习编程的过程当中,碰到的最多的两张编程方式或者说编程方法:面向过程和面向对象.其实不管是哪一种,其实都是编程的方法论 ...

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

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

  8. Python Json模块中dumps、loads、dump、load函数介绍哦

    来自: https://www.jb51.net/article/139498.htm 1.json.dumps()       json.dumps()用于将dict类型的数据转成str,因为如果直 ...

  9. 【Python】Json序列化和反序列化模块dumps、loads、dump、load函数介绍

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

随机推荐

  1. Linux进程作业的查看和杀死

    引入进程 进程 线程 PS命令.TOP命令.其他查看进程命令 进程的优先级 作业控制机制 kill命令 一.引入进程 1.内存划分为:用户空间和内核空间 1.在用户空间里运行的进程,就是用户进程,所属 ...

  2. Jsoup(三)-- Jsoup使用选择器语法查找DOM元素

    1.Jsoup可以使用类似于CSS或jQuery的语法来查找和操作元素. 2.实例如下: public static void main(String[] args) throws Exception ...

  3. Disruptor LMAX学习

    http://lmax-exchange.github.io/disruptor/ http://bruce008.iteye.com/blog/1408075 http://code.google. ...

  4. Linux误删文件后恢复数据

    在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs.R-Linux.ext3grep.extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复 ...

  5. inux跟踪线程的方法:LWP和strace命令

    摘要:在使用多线程程序时,有时会遇到程序功能异常的情况,而这种异常情况并不是每次都发生,很难模拟出来.这时就需要运用在程序运行时跟踪线程的手段,而linux系统的LWP和strace命令正是这种技术手 ...

  6. c++学习笔记—二叉树基本操作的实现

    用c++语言实现的二叉树基本操作,包括二叉树的创建.二叉树的遍历(包括前序.中序.后序递归和非递归算法).求二叉树高度,计数叶子节点数.计数度为1的节点数等基本操作. IDE:vs2013 具体实现代 ...

  7. Android之数据存储

    概述 1.android中包含5中数据存储方式: SharedPreferences存储数据. ContentProvider存储 文件存储 SQLlite数据库存储 网络存储 Preference  ...

  8. IOS设计模式第八篇之键值观察模式

    版权声明:原创作品,谢绝转载!否则将追究法律责任. 键值观察模式: 在KVO,一个对象可以要求被通知当他的某个特殊的属性被改变了.自己或者另一个对象.如果你感兴趣你可以阅读更多的信息参考: Apple ...

  9. 【Spring Boot&& Spring Cloud系列】单点登录SSO之OAuth2官方开发文档翻译

    Introduction:介绍 This is the user guide for the support for OAuth 2.0. For OAuth 1.0, everything is d ...

  10. Android 逆向工具

    逆向分析工具 https://github.com/skylot/jadx/ https://github.com/google/android-classyshark https://github. ...