您的位置:首页 > 编程语言 > Python开发

python调用api处理json数据(天气api实例)

2020-03-31 19:40 3523 查看

Json数据的直接读取

y.json()

如果y不是json格式,程序会报错

import json#需要调用json
yansgen=open('y.json','r')
print(yangsen.json())#这里不会对数据造成任何影响,只是对json数据的一种解码读取

 

对从网上获取的json数据的使用

首先就以获取一个api接口的数据为例
https://free-api.heweather.net/s6/weather/now?location=auto_ip&key=db86a5196f304e52a4369818c5182e60

上面是一个

通过ip获取定位和天气信息的api
,可以直接拿去使用,但是我不知道他有没有调用限制,做做测试是可以的
 
####1.第一步获取json数据####

import requests#需要安装requests模块,详情百度pip安装
import json#下面会用到
url='https://free-api.heweather.net/s6/weather/now?location=auto_ip&key=db86a5196f304e52a4369818c5182e60'
yang=requests.get(url)#这里返回的json数据

 
####2.保存json数据####

result=open('a.json','w')

result.write(yang.text)#yang.text将yang这个json数据以字符形式使用
result.close()#这里一定要关闭文件,不然写不进去


数据已经保存了

 
####3.打开并解析json数据####

open_json=open('a.json','r',encoding='cp936')
zd_json=json.load(open_json)#json.load()将json转为python字典
open_json.clsoe()#到这里zd_json是一个`python字典`


 
####4.解析python字典并使用数据####

[scode type=“yellow”]主意json转换为python字典,可能是字典和列表

相互镶嵌
的[/scode]
有了字典就可以随便用了
先看看获得的数据

 
可以看到
HeWeather6
对应的是一个列表
update
对应的是一个字典
这里我就不多举例了来个使用示例吧

print('你的地址是:',zd_json['HeWeather6'][0]['basic']['location'])
print('你所在市现在天气是'+zd_json['HeWeather6'][0]['now']['cond_txt'])
print('你所在城市现在温度是'+zd_json['HeWeather6'][0]['now']['tmp']+'℃')


 

代码汇总

import requests#需要安装requests模块,详情百度pip安装
import json
url='https://free-api.heweather.net/s6/weather/now?location=auto_ip&key=db86a5196f304e52a4369818c5182e60'
yang=requests.get(url)#这里返回的json数据
result=open('a.json','w')

result.write(yang.text)#yang.text将yang这个json数据以字符形式使用
result.close()#这里一定要关闭文件,不然写不进去open_json=open('a.json','r',encoding='cp936')
zd_json=json.load(open_json)#json.load()将json转为python字典
open_json.close()#到这里zd_json是一个python字典

print('你的地址是:',zd_json['HeWeather6'][0]['basic']['location'])
print('你所在市现在天气是'+zd_json['HeWeather6'][0]['now']['cond_txt'])
print('你所在城市现在温度是'+zd_json['HeWeather6'][0]['now']['tmp']+'℃')

[scode type=“yellow”]注意博主全部python版本为

3.8.0

如果运行有问题需要自己改一下兼容问题[/scode]
 

最后

[scode type=“blue”]写这篇文章是因为在一次使用音乐api接口时遇到了很多困难,看懂这篇技巧使用其他api接口应该也没有问题了,比较方式是一样的。可能有人看完会问为什么要把json数据保存再打开?因为直接使用的时候报错,自己不会处理,所以最后走了一点弯路[/scode]

 
 
原文链接:http://www.zwq20.com/index.php/archives/22/

  • 点赞
  • 收藏
  • 分享
  • 文章举报
杨森blog 发布了1 篇原创文章 · 获赞 0 · 访问量 145 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: