一、Json简介:
- JSON 是一种轻量级的数据交换格式。
- 数据交换格式是不同平台、语言中进行数据传递的通用格式
- 基本用法:JSON格式: 在各种语言中,都可以被读取,被用作不同语言的中间转换语言【类似翻译器】
二、主要结构:
- “键/值” 对的集合;python 中主要对应 字典
- 值的有序列表;在大部分语言中,它被理解为 数组
Python |
JSON |
dict |
object |
list, tuple |
array |
str |
string |
int, float |
number |
True |
true |
False |
false |
None |
null |
三、Json模块常用函数:
分类 |
关键字 / 函数 / 方法 |
说明 |
模块 |
import json |
导入模块 |
|
json.dumps(dict) |
可以将字典转换为 json 格式 |
|
json.loads(str) |
可以将json数据转换成字典 |
四、案例练习:(获取天气信息)
import json
import requests
# 天气url
url = "http://www.weather.com.cn/data/sk/101010100.html"
response = requests.get(url)
# 修改编码格式为“utf8”
print(response.encoding)
response.encoding = "utf8"
print(response.encoding)
print(response.text)
# json转换成dict格式
dict_data = response.json()
print(dict_data, type(dict_data))
# 获取天气结果的返回值
{'weatherinfo': {'city': '北京', 'cityid': '101010100', 'temp': '27.9', 'WD': '南风', 'WS': '小于3级', 'SD': '28%', 'AP': '1002hPa', 'njd': '暂无实况', 'WSE': '<3', 'time': '17:55', 'sm': '2.1', 'isRadar': '1', 'Radar': 'JC_RADAR_AZ9010_JB'}}
<class 'dict'>
# 打印指定天气的值
print("city:", dict_data["weatherinfo"]["city"])
print("temp:", dict_data["weatherinfo"]["temp"])