python的json模块的dumps,loads,dump,load方法介绍
dumps和loads方法都在内存中转换,
dump和load的方法会多一个步骤,dump是把序列化后的字符串写到一个文件中,而load是从一个文件中读取字符串
将列表转为字符串
>>> a=[,,,,]
>>> import json
>>> json.dumps(a)
'[1, 2, 3, 4, 5]'
>>> type(json.dumps(a))
<class 'str'>
>>>
将字典转化为字符串
>>> b={"cc":,"vv":}
>>> json.dumps(b)
'{"cc": 12, "vv": 33}'
>>> type(json.dumps(b))
<class 'str'>
将字符串转为列表
>>> f=json.dumps(a)
>>> f
'[1, 2, 3, 4, 5]'
>>> json.loads(f)
[, , , , ]
将字符串转为字典
>>> k=json.dumps(b)
>>> k
'{"cc": 12, "vv": 33}'
>>> json.loads(k)
{'cc': , 'vv': }
>>>
字符串转字典
#coding=utf-
import requests
import json
#
ret = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')
ret.encoding = 'utf-8'
s1 = ret.text
print(s1,type(s1)) d1 = json.loads(s1)
print(d1,type(d1))
输出
{
"data": {
"yesterday": {
"date": "16日星期六",
"high": "高温 3℃",
"fx": "北风",
"low": "低温 -6℃",
"fl": "<![CDATA[3-4级]]>",
"type": "晴"
},
"city": "北京",
"forecast": [{
"date": "17日星期天",
"high": "高温 6℃",
"fengli": "<![CDATA[<3级]]>",
"low": "低温 -4℃",
"fengxiang": "北风",
"type": "晴"
}, {
"date": "18日星期一",
"high": "高温 4℃",
"fengli": "<![CDATA[<3级]]>",
"low": "低温 -3℃",
"fengxiang": "南风",
"type": "阴"
}, {
"date": "19日星期二",
"high": "高温 7℃",
"fengli": "<![CDATA[<3级]]>",
"low": "低温 -4℃",
"fengxiang": "西南风",
"type": "多云"
}, {
"date": "20日星期三",
"high": "高温 9℃",
"fengli": "<![CDATA[<3级]]>",
"low": "低温 -4℃",
"fengxiang": "北风",
"type": "晴"
}, {
"date": "21日星期四",
"high": "高温 11℃",
"fengli": "<![CDATA[<3级]]>",
"low": "低温 -3℃",
"fengxiang": "西南风",
"type": "晴"
}],
"ganmao": "各项气象条件适宜,无明显降温过程,发生感冒机率较低。",
"wendu": "-2"
},
"status": ,
"desc": "OK"
} < class 'str' > {
'data': {
'yesterday': {
'date': '16日星期六',
'high': '高温 3℃',
'fx': '北风',
'low': '低温 -6℃',
'fl': '<![CDATA[3-4级]]>',
'type': '晴'
},
'city': '北京',
'forecast': [{
'date': '17日星期天',
'high': '高温 6℃',
'fengli': '<![CDATA[<3级]]>',
'low': '低温 -4℃',
'fengxiang': '北风',
'type': '晴'
}, {
'date': '18日星期一',
'high': '高温 4℃',
'fengli': '<![CDATA[<3级]]>',
'low': '低温 -3℃',
'fengxiang': '南风',
'type': '阴'
}, {
'date': '19日星期二',
'high': '高温 7℃',
'fengli': '<![CDATA[<3级]]>',
'low': '低温 -4℃',
'fengxiang': '西南风',
'type': '多云'
}, {
'date': '20日星期三',
'high': '高温 9℃',
'fengli': '<![CDATA[<3级]]>',
'low': '低温 -4℃',
'fengxiang': '北风',
'type': '晴'
}, {
'date': '21日星期四',
'high': '高温 11℃',
'fengli': '<![CDATA[<3级]]>',
'low': '低温 -3℃',
'fengxiang': '西南风',
'type': '晴'
}],
'ganmao': '各项气象条件适宜,无明显降温过程,发生感冒机率较低。',
'wendu': '-2'
},
'status': ,
'desc': 'OK'
} < class 'dict' >
将字典存入文件中,再从文件读取出来
#coding=utf-
import json
d1 = {'name':'foot'} '''
第一种写法
json.dump(d1,open('db','w'))
d1 = json.load(open('db','r'))
print(d1,type(d1))
''' #第二种写法
with open("db","w") as f:
json.dump(d1,f) with open("db","r") as f:
print(json.load(f))
参考:
http://www.cnblogs.com/bainianminguo/p/6676067.html
python的json模块的dumps,loads,dump,load方法介绍的更多相关文章
- 细说【json&pickle】dumps,loads,dump,load的区别
1 json.dumps() json.dumps()是将字典类型转化成字符串类型. import json name_emb = {'a':'1111','b':'2222','c':'3333', ...
- json模块中dumps()与dump()区别
dumps是将dict转化成json字符串格式,loads是将json字符串转化成dict格式. dump和load也是类似的功能,只是与文件操作结合起来了. dump(写入内容,文件对象) 和loa ...
- JSON实现序列化dump和dumps方法,JSON实现反序列化loads和load方法
通过文件操作,我们可以将字符串写入到一个本地文件.但是,如果是一个对象(例如列表.字典.元组等),就无 法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里. 设计一套协议,按照某种 ...
- 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍
爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,load ...
- 解决python中json模块loads出来的结构都是unicode的问题
在使用python的json模块对json字串反序列化成python对象的时候出现的字符串都是unicode类型,而不是python内置的str类型.在某种使用场景下用户必须做显式的转换才能正常使用, ...
- 【转】在Python的struct模块中进行数据格式转换的方法
这篇文章主要介绍了在Python的struct模块中进行数据格式转换的方法,文中还给出了C语言和Python语言的数据类型比较,需要的朋友可以参考下 Python是一门非常简洁的语言,对于数据类型的表 ...
- SVN备份及其还原 — dump/load方法
本文中采用最简单的dump/load方法.备份:一个较大的Subsersion版本库想用最少的空间来将它备份下来,用这个命令(请将/repo替换成你的版本库路径)svnadmin dump --del ...
- Python Json模块中dumps、loads、dump、load函数介绍
1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数. import ...
- Python Json模块中dumps、loads、dump、load函数介绍哦
来自: https://www.jb51.net/article/139498.htm 1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直 ...
随机推荐
- 每天学点Linux命令之grep 和 wc命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expr ession Print,表示全局正则表 ...
- strcpy和memcpy,memmove函数的区别
strcpy和memcpy的区别 strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制 ...
- django crontab 定时任务
分 时 日 月 周 命令(最好用绝对路径)比如: * * * * * rm -fr /mnt/* //每分钟执行一次对/mnt目录下文件的删除*/2 * * * * rm -fr /mnt/* //每 ...
- OL6.3 设置本地yum源
仅在 Oracle Linux Server release 6.3 上测试 PS:Oracle Linux Server release 6.3仅用于测试,不能用于商业用途 [root@oracle ...
- java读取文件和写入文件的方式
https://www.cnblogs.com/fnlingnzb-learner/p/6011324.html
- Greenplum5.16.0 安装教程
Greenplum5.16.0 安装教程 一.环境说明 1.1官方网站 Greenplum官方安装说明:https://gpdb.docs.pivotal.io/5160/install_guide/ ...
- ORA-00600: internal error code, arguments: [13030], [20]一例解决
两年没有接触oracle了,中午,一环境update from的时候出现ORA-00600: internal error code, arguments: [13030], [20]异常,经查,官网 ...
- windows下常用linux对应工具
tail 可从http://files.cnblogs.com/hantianwei/tail.zip下载,解压后exe,如下: e:\>tail -fn 300 tool-slow.logus ...
- centos6.5新增加硬盘挂载并实现开机自动挂载
在内网主机新增一个2T硬盘,先关机断电再连接硬盘数据线和电源线! 查看当前磁盘设备信息: [root@tb ~]# fdisk -l WARNING: GPT (GUID Partition Tabl ...
- left join加上where条件的困惑
eft join的困惑:一旦加上where条件,则显示的结果等于inner join将where 换成 and 用where 是先连接然后再筛选 用and 是先筛选再连接 数据库在通过连接两张或多 ...