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

备注:文件路径前面加上 r 是为了避免转义

 1 import json
2
3 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
4 string = json.dumps(dict)
5 print(dict)
6 print(string)
7 print(type(dict))
8 print(type(string))
9
10 with open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w')as f:
11 f.write(string)
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
3 <class 'dict'>
4 <class 'str'>

如果没有进行转换,则会报错:TypeError: write() argument must be str, not dict

1 import json
2
3 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
4 with open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w')as f:
5 f.write(dict)
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 Traceback (most recent call last):
3 <class 'dict'>
4 File "C:/Users/zy/Documents/GitHub/python3/searchTest/json_test.py", line 11, in <module>
5 f.write(dict)
6 TypeError: write() argument must be str, not dict

json.dumps()参数解释:常用参数解释

indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白

sort_keys:将数据根据keys的值进行排序

1 response = requests.post(url=url,headers=headers).json()
2 print(json.dumps(response,sort_keys=True,indent=4))

举例结果:

 1 {
2 "code": "200",
3 "message": "",
4 "redirect": "",
5 "value": {
6 "name": "so",
7 "title": "360",
8 "value": "2"
9 }
10 }

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

 1 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 dumps = json.dumps(dict)
3 loads = json.loads(dumps)
4
5 print(dict)
6 print(dumps)
7 print(loads)
8
9 print(type(dict))
10 print(type(dumps))
11 print(type(loads))
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
3 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
4 <class 'dict'>
5 <class 'str'>
6 <class 'dict'>

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

1 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 json.dump(dict,open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w'))

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

1 filename = (r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json')
2 jsObj = json.load(open(filename))
3 print(jsObj)
4 print(type(jsObj))
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 <class 'dict'>

常见问题:

  1. json.dumps方法默认会输出成这种格式"\u535a\u5ba2\u56ed"

  要输出中文需要指定ensure_ascii参数为False,如下代码片段:

  json.dumps({'text':"中文"},ensure_ascii=False,indent=2) # indent 进行缩进展示

python之json操作的更多相关文章

  1. python中json操作了解

    什么是接口? 交换数据 http://openweathermap.org/current json简介 JSON 是存储和交换文本信息的语法.类似 XML JSON 语法是 JavaScript 语 ...

  2. 【2019.6.2】python:json操作、函数、集合、random()等

    一.json操作: json就是一个字符串,从文件中读取json,必须是json格式.j'son串中必须是双引号,不能有单引号,单引号不能转换 1.1使用: import json #使用json先引 ...

  3. python中json操作

    1.写操作.json文件dumps().dump()函数 d = { 'zll': { 'addr': '北京', 'age': 28 }, 'ljj': { 'addr': '北京', 'age': ...

  4. Python的json操作

    对数据:    json = json.dumps(data)  编码  dict->string  排序sort_keys=True, 缩进indent=4, 分隔符separators=(' ...

  5. Python 第三篇(上):python文件基础操作、json模块、lambda、map、filter、reduce和函数位置参数

    python一切皆对象,linux一切皆文件,python操作文件是很常见的O/I操作,其内置来open()函数可以完成文件的基本操作: 一:使用内置open()函数操作文件,基本语法如下: with ...

  6. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

  7. python 历险记(四)— python 中常用的 json 操作

    目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...

  8. Python中的json操作

    Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...

  9. Python中json的简单读写操作

    Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

随机推荐

  1. laravel 先orderBY再groupby,导致分组后的排序不正确

    //联系过我的经纪人 $appletChats=$this->AppletChat->orderBy('created_at','desc')->where([['user_id', ...

  2. vue事件.navtive 的使用

    我们可以直接在组件标签上绑定事件了 然后在 methods 的对象中调用这个方法了 正常情况下是不可以的,但是我们可以使用事件修饰符 .navtive 就可以实现了 props的对象写法

  3. 【编程漫谈】用JAVA画多边形

    一门语言只要带图形库就可以编程画图了,用JAVA画图有两种方式,一是在内存中画好然后生成图片,就可以看到画图的效果了.另一个就是在窗口界面上直接画,可以实时看到程序的运行效果.刚开始学编程的时候,我加 ...

  4. matplotlib展现混淆矩阵

    1.展现混淆矩阵 import matplotlib.pyplot as plt import itertools def plot_confusion_matrix(cm, classes, tit ...

  5. tensorflow实现验证码识别案例

    1.知识点 """ 验证码分析: 对图片进行分析: 1.分割识别 2.整体识别 输出:[3,5,7] -->softmax转为概率[0.04,0.16,0.8] - ...

  6. SqlServer:SqlServer(sql,游标,定时作业,行转列,列转行,公用表达式递归,merge合并)

    1.加载驱动: Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); DriverManager.getCo ...

  7. script学习,如何用linux监控你的同事?

    环境:CentOS7 一.为什么要学习script命令 当你在终端或控制台上工作时,你想记录下自己做了些什么吗?当你跟一些Linux管理员同时在系统上干活,你想知道别人干了什么吗?当你让别人远程到你的 ...

  8. 学习ansible笔记1

    ansible的特点: -- 模块化设计 -- 仅需要ssh和Python即可以使用 -- 无客户端 -- 功能强大,模块丰富 -- 上手容易门槛低 -- 基于python开发,做二次开发更容易 -- ...

  9. Linux C/C++基础——Windows远程登录Linux

    首先介绍两个ubuntu系统管理命令,用来测试连通性,及获取IP地址. 1.ping ping命令用来测试远程主机的连通性 使用方法:ping [参数] 远程主机IP地址 参数 功能 -a 每次相应时 ...

  10. Leetcode之广度优先搜索(BFS)专题-127. 单词接龙(Word Ladder)

    Leetcode之广度优先搜索(BFS)专题-127. 单词接龙(Word Ladder) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tre ...