转自: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. 使用 requests 发送 GET 请求

    基本用法: import requests req = requests.get("http://www.baidu.com/") //发起GET请求 print(req.text ...

  2. [XPath] XPath 与 lxml (一)XPath 术语

    前言 这是一篇主要介绍 XPath 的文章,由于 JQuery 已经不支持 XPath,所以本文主要通过 Python 的 lxml.etree 来介绍 XPath. 什么是 XPath ? XPat ...

  3. make clean、make mrproper、make distclean的区别【转】

    本文转载自:http://blog.csdn.net/liyayao/article/details/6818061 内核编译时, 到底用make clean, make mrproper还是make ...

  4. Android自定义字体

    1.在assets中创建文件夹fonts,放入字体文件.ttf 2.使用实例: TextView tv= (TextView)findViewById(R.id.tv); Typeface tf =  ...

  5. 数据流-------C#文件和byte[]互换问题

    今天使用FileInfo.CopyTo的时候出现问题,当然并不是使用的问题,而是一些细节. 不过报错的时候,一度让我认为,copyto这个方法,给的参数必须是文件夹,而不是文件.所以就有了下面的查找 ...

  6. C#生成随机验证码例子

    C#生成随机验证码例子: 前端: <tr> <td width=" align="center" valign="top"> ...

  7. Xcode debug时如何查看内存中的数据

    对于IPhone开发/XCode的初学者,如何在调试时查看变量的值是很头痛的事情.因为Xcode的expression 经常无法正确显示变量的值.但是强大的GDB可以很方便的帮我们查看变量的值.   ...

  8. LeetCode 19 Remove Nth Node From End of List (移除距离尾节点为n的节点)

    题目链接 https://leetcode.com/problems/remove-nth-node-from-end-of-list/?tab=Description   Problem: 移除距离 ...

  9. sencha touch 2.2.1 自定义彩色图标按钮(button+ico)

    sencha touch 2.2.1 这个版本使用了新的按钮模式,不过他只提供了少部分的按钮样式.我们可以加一些自定义的ico样式 新加ico样式lower .x-button .x-button-i ...

  10. sencha touch list(列表) item(单行)单击事件触发顺序

    测试代码如下 Ext.define('app.view.new.List', { alternateClassName: 'newList', extend: 'app.view.util.MyLis ...