Python序列化之Json基础
- python的序列化就是将python的基本对象转换为字符串的过程,反之则是反序列化。
- 序列化类型:
-> import json
import pickle- 序列化定义:
序列化:对象、列表、字典都是python的基本数据类型,序列化其实就是把这些数据类型转换为字符串。
反序列化:将序列化后得到的字符串转反序列化成python的数据对象、列表、字典等类型- json的作用:
在python的基本数据类型与字符串之间进行相互转换的作用- json.dumps()函数:
将python基本数据类型转换成字符串类型,称为序列化- json.loads()函数:
将字符串形式转换成python的基本数据类型,称为反序列化- json.loads()条件:
虽然loads函数可以将字符串发序列化成python基本数据类型,但是字符串必须是
正规的python基本数据类型,不能是类似{"k1":123]这样,既不是字典,又不是列表。- requests.get('URL')
获取URL指定的资源,http://wthrcdn.etouch.cn/weather_mini?city=上海 获取上海天气的API- 代码部分:
- import json # 做序列化和反序列化需要用到json模块
- import requests #请求URL资源,需要用到requests模块
- print('\n','序列化'.center(,'-'))
- dic = {'k1':'v1'}
- print(dic,type(dic))
- # 输出结果:{'k1': 'v1'} <class 'dict'>
- # json.dumps(python数据类型)就可以把数据类型转换为字符串,这个过程就是序列化
- result = json.dumps(dic)
- print(result,type(result))
- # 输出结果:{"k1": "v1"} <class 'str'>
- print('\n','反序列化'.center(,'-'))
- #json.loads(字符串)就可以把字符串转换成python的基本数据类型,这个过程就是反序列号
- s1 = '{"k1":123}' # s1虽然看起来像字典,但它是一个字符串
- dic = json.loads(s1)
- print(dic,type(dic))
- # 输出结果: {'k1': } <class 'dict'>
- print('\n','基于天气API获取python的json数据'.center(,'-'))
- response = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=上海')
- response.encoding = 'utf-8'
- print(response.text,type(response.text)) # 获取到的结果是字符串类型
- # 输出结果: {"data":{"yesterday":{"date":"26日星期一"... <class 'str'>
- # 通过json.loads()函数将字符串结果转换为字典类型,转换成字典后对字典内对数据进行操作就方便的多了。
- dic = json.loads(response.text)
- print(dic,type(dic)) # json.loads()转换后的结果为python的基本数据类型,这里就是字典。
- # 输出结果: {'data': {'yesterday': {'date': '26日星期一... <class 'dict'>
执行结果:
- ------------------序列化-------------------
- {'k1': 'v1'} <class 'dict'>
- {"k1": "v1"} <class 'str'>
- ------------------反序列化------------------
- {'k1': } <class 'dict'>
- ---------基于天气API获取python的json数据---------
- {"data":{"yesterday":{"date":"26日星期一","high":"高温 28℃","fx":"西风","low":"低温 23℃","fl":"微风","type":"雷阵雨"},"city":"上海","aqi":"","forecast":[{"date":"27日星期二","high":"高温 29℃","fengli":"微风级","low":"低温 23℃","fengxiang":"西风","type":"雷阵雨"},{"date":"28日星期三","high":"高温 28℃","fengli":"微风级","low":"低温 23℃","fengxiang":"东南风","type":"小雨"},{"date":"29日星期四","high":"高温 27℃","fengli":"微风级","low":"低温 24℃","fengxiang":"东南风","type":"中雨"},{"date":"30日星期五","high":"高温 32℃","fengli":"微风级","low":"低温 26℃","fengxiang":"东南风","type":"多云"},{"date":"1日星期六","high":"高温 32℃","fengli":"4-5级","low":"低温 26℃","fengxiang":"东南风","type":"多云"}],"ganmao":"各项气象条件适宜,无明显降温过程,发生感冒机率较低。","wendu":""},"status":,"desc":"OK"} <class 'str'>
- {'data': {'yesterday': {'date': '26日星期一', 'high': '高温 28℃', 'fx': '西风', 'low': '低温 23℃', 'fl': '微风', 'type': '雷阵雨'}, 'city': '上海', 'aqi': '', 'forecast': [{'date': '27日星期二', 'high': '高温 29℃', 'fengli': '微风级', 'low': '低温 23℃', 'fengxiang': '西风', 'type': '雷阵雨'}, {'date': '28日星期三', 'high': '高温 28℃', 'fengli': '微风级', 'low': '低温 23℃', 'fengxiang': '东南风', 'type': '小雨'}, {'date': '29日星期四', 'high': '高温 27℃', 'fengli': '微风级', 'low': '低温 24℃', 'fengxiang': '东南风', 'type': '中雨'}, {'date': '30日星期五', 'high': '高温 32℃', 'fengli': '微风级', 'low': '低温 26℃', 'fengxiang': '东南风', 'type': '多云'}, {'date': '1日星期六', 'high': '高温 32℃', 'fengli': '4-5级', 'low': '低温 26℃', 'fengxiang': '东南风', 'type': '多云'}], 'ganmao': '各项气象条件适宜,无明显降温过程,发生感冒机率较低。', 'wendu': ''}, 'status': , 'desc': 'OK'} <class 'dict'>
Python序列化之Json基础的更多相关文章
- Python序列化之json与pickle
1.json介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...
- python序列化模块json和pickle
序列化相关 1. json 应用场景: json模块主要用于处理json格式的数据,可以将json格式的数据转化为python的字典,便于python处理,同时也可以将python的字典或列表等对象转 ...
- python 序列化之JSON和pickle详解
JSON模块 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类 ...
- python序列化和json
python 的序列化和反序列化用于内存之间的共享,包括服务器和客户端的共享,两个Python程序之间的共享,以及以字符串的形式存储到硬盘中. pyhton 的pickle 可以对Python的各种数 ...
- python序列化模块 json&&pickle&&shelve
#序列化模块 #what #什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程叫做序列化. #why #序列化的目的 ##1.以某种存储形式使自定义对象持久化 ##2.将对象从一个地方传递 ...
- Python序列化,json&pickle&shelve模块
1. 序列化说明 序列化可将非字符串的数据类型的数据进行存档,如字典.列表甚至是函数等等 反序列化,将通过序列化保存的文件内容反序列化即可得到数据原本的样子,可直接使用 2. Python中常用的序列 ...
- python序列化: json & pickle & shelve 模块
一.json & pickle & shelve 模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进 ...
- python 序列化 json pickle
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- Python之数据序列化(json、pickle、shelve)
本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Py ...
随机推荐
- P1007 独木桥
P1007 独木桥最少的话是同时朝一个方向,最多可以这样考虑,碰头时不是转向吗?它等价于穿过另一个人,也就是两个人交换,最后取最大值就好了. #include<iostream> usin ...
- python 中的可变对象与不可变对象
近日辞职待工,没有实际的项目与大家分享.暂写写在实际运用python中遇到的关于可变对象和不可变对象的坑. 首先我们需要明确一个概念,在python中一且皆对象.我们一般定义一个变量a=0,其实质a是 ...
- js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?
日常在群里讨论一些概念性的问题,比如变量提升,作用域和闭包相关问题的时候,经常会听一些大佬们给别人解释的时候说执行上下文,调用上下文巴拉巴拉,总有点似懂非懂,不明觉厉的感觉.今天,就对这两个概念梳理一 ...
- kolla之docker私有仓库创建
kolla镜像自从P版以后就没有向之前版本直接下载一个tar然后放入仓库那么简单了. 正式开始搭建仓库: 1.启动仓库容器 docker run -d -v /opt/registry:/var/l ...
- 新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial
新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial 作者:韩梦飞沙 Auth ...
- memcached协议解析
本文转载自:http://www.ccvita.com/306.html 协议memcached 的客户端使用TCP链接与服务器通讯.(UDP接口也同样有效,参考后文的 “UDP协议” )一个运行中的 ...
- php传入对象时获得类型提示
类的类型提示 - 将类名放在需要约束的方法参数之前 语法格式: public function write(ShopProduct $shopProduct){} 数组提示: public funct ...
- unity3d 摄像机抖动效果 CameraShake
unity3d 摄像机抖动效果 ,利用脚本直接控制:当然也可以选择使用dotween插件,但到不至于为了使用仅一个功能,就导入了一个插件: 脚本示例: using UnityEngine; using ...
- unity小知识了解
在搜索栏的右侧有三个按钮,单击第一个按钮,弹出相应菜单,可以根据目标类型过滤搜索结果.[按钮从左到右] 第二个按钮,提供素材标签来过滤搜索结果,可以自定义标签. 第三个按钮,提供了将搜索结果添加到前面 ...
- Vue插件写、用详解(附demo)
出处http://blog.csdn.net/qq20004604 Vue插件 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共 ...