python初步学习-python 模块之 json
json 模块
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写。一般API返回的数据大多是JSON、XML,如果返回JSON的话,将获取的数据转换成字典,方便在程序中处理。
JSON库经常用的有两种方法dumps()和loads();还有 dump()和load()
dump()和load()通常用于对文件进行编码和解码,用的较少。dumps()和loads()通常用于对字符串进行编码和解码
dumps()
json.dumps()用于将python对象编码成JSON字符串
>>> dict = {'user':[{'user1': 123}, {'user2': 456}]}
>>> type(dict)
<type 'dict'>
>>> json_str = json.dumps(dict)
>>> type(json_str)
<type 'str'>
>>> print json_str
'{"user": [{"user1": 123}, {"user2": 345}]}'
## 请注意如果直接使用 str() 函数对字典进行字符串处理
>>> json_str_test = str(dict)
>>> print json_str_test
"{'user': [{'user1': 123}, {'user2': 345}]}"
直接进行字符串处理,和通过 json.dumps() 处理的结果虽然都是字符串,但是字符串中的 key 的格式不一样。这种不一样导致了 通过 json.dumps() 处理后的数据属于合法数据。查看 JSON 数据是否合法可以使用下面这个网站。\
loads()
json.loads()用于将JSON字符串解码为python对象,该函数返回python字段的数据类型。
>>> dict = {'user':[{'user1': 123}, {'user2': 456}]}
>>> json_str = json.dumps(dict)
>>> print json_str
{"user": [{"user1": 123}, {"user2": 456}]}
>>> d = json.loads(json_str)
>>> print d
{u'user': [{u'user1': 123}, {u'user2': 456}]}
## 可以通过 Key 来获取相对应的 Vlaue
>>> d['user']
[{u'user1': 123}, {u'user2': 456}]
python初步学习-python 模块之 json的更多相关文章
- python初步学习-python函数(一)
python 函数 函数是组织好的,可重复使用的,用来实现单一或者相关联功能的代码段. 函数能提高应用的模块性和代码的重复利用率. 函数定义 python中函数定义有一些简单的规则: 函数代码块以de ...
- python初步学习-Python模块之 re
re 正则表达式 python正则表达式在线检验网站 python re正则表达式语法 匹配字符 语法 解释 表达式 匹配实例 . 匹配任意除"\n"以外的任何字符 a.c abc ...
- python初步学习-python模块之 os
os os 模块在运维工作中是很常用的一个模块.通过os模块调用系统命令.os模块可以跨平台使用. 在 import os的时候,建议使用import os而非from os import *.这样可 ...
- python初步学习-python模块之 logging
logging 许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在python中,我们不需要第三方的日志组件,python为我们提供了简单易用.且 ...
- python初步学习-python 模块之 sys(持续补充)
sys sys 模块包括了一组非常实用的服务,内含很多函数方法和变量 sys 模块重要函数变量 sys.stdin 标准输出流 sys.stdout 标准输出流 sys.stderr 标准错误流 sy ...
- python初步学习-python模块之 commands
commands 通过 os.popen() 执行 shell 命令,返回两个对象,一个是 状态码(Int).另一个为命令输出(str) commands.getoutput(cmd) 返回命令执行输 ...
- python初步学习-python文件操作
文件 文件,在python中,他是一种类型的对象,类似前面已经学过的其他数据类型,包括文本的.图片的.音频的.视频的等等,还有不少没见过的扩展名的.事实上,在linux操作系统中,所有的东西都被保存到 ...
- python初步学习-python函数 (二)
几个特殊的函数(待补充) python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda >& ...
- python初步学习-python控制流
语句书写规范 缩进在python语言书写中非常重要,如果缩进不规范,执行程序将会报错 引用维基百科中的叙述: Python開發者有意讓違反了縮排規則的程序不能通過編譯,以此來強迫程序員養成良好的編程習 ...
随机推荐
- 01.基于IDEA+Spring+Maven搭建测试项目--综述
目前公司的测试工作中常见两种接口:HTTP和Dubbo,这两种接口类型均可以使用相关测试工具进行测试,但都会有一定的局限性和不便之处,具体如下: 1.HTTP接口,当需要对于参数进行加密解密时,就得对 ...
- Spring boot项目集成Sharding Jdbc
环境 jdk:1.8 framework: spring boot, sharding jdbc database: MySQL 搭建步骤 在pom 中加入sharding 依赖 <depend ...
- BZOJ 2746: [HEOI2012]旅行问题
2746: [HEOI2012]旅行问题 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 921 Solved: 291[Submit][Status ...
- struts2练习时犯的错误(2016年11月4日)
1.Tomcat启动时报错 严重: 文档无效: 找不到语法. at (null:3:8) org.xml.sax.SAXParseException; systemId: file:/F:/Progr ...
- [Codeforces Gym] 100162B Circle of Stones
题意: 桌子上有 n 个石头围成一个环.每个石头都有一种颜色.每种颜色可以由小写英文字母表示.如果每一对相邻的石头都是不同颜色的,则称这 n 个石头构成的环是美丽的.现在,你可以从这 n 个石头中拿走 ...
- bzoj 2453 : 维护队列 带修莫队
2453: 维护队列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 952 Solved: 432[Submit][Status][Discuss] ...
- HDU 6071 同余最短路 spfa
Lazy Running Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)To ...
- 搭建web.py
输入以下命令:盘符切换: >>d: >>D:\LYFLYFLYF\python\web.py-0.37 >>python setup.py install 出现 ...
- git简单使用总结
一.git配置 git config 1.git config --global user.name "ken" 配置用户名2.git config --global user.e ...
- python---基础知识回顾(五)(python2.7和python3.5中的编码)
Unicode 和 UTF-8 有何区别? python基础之字符编码 以上两篇看懂即可,那下面的就不需要看了 python标准数据类型 Bytes python--数据类型bytes Python ...