2014-09-19 55 views
1

因此,我想了解更多关于API以及我可以使用它们的不同方法。说,截至现在我有将从REST API检索到的数据存储到python变量中

import requests, json, pprint 

r = requests.get("values from api") 

pprint.pprint(r.json()) 

返回到我下面

> {'currentResultCount': '10', 
> 'results': [{'Name': 'Item_One', 
>    'Price': '464086'}, 
>    {'Name': 'Item_Two', 
>    'Price': '70874', 
>    and so on......... 

如果我想存储阵列中的所有价格,并做一些数据对它们的分析(如找到平均数,中位数和模式),我应该怎么做?

我试着调用r [0]来查看它是否有效,但是显然r是响应对象类型,所以r [0]不起作用。这是我第一次了解API和数据操作,非常感谢任何建议和学习提示!

+0

你已经通过'r.json()' – 2014-09-19 22:13:27

+0

这样做了,但是我还没有真正研究过究竟json是什么,但是看起来好像json会回答我的问题。谢谢你的提示! – user3277633 2014-09-19 22:15:27

回答

2

.json()解析引擎盖下JSON响应并返回一个Python数据结构,你的情况,定期dictionary

data = r.json() 

为了获得价格清单,遍历results值,并获得Price在每次迭代:

prices = [item['Price'] for item in data['results']] 

您也可以施放价格float

prices = [float(item['Price']) for item in data['results']] 
+0

我使用 '解析度= conn.getresponse() 数据= res.read() 打印(data.decode( “UTF-8”)) MYDATA = data.json()' 但我get是,'RemoteDisconnected:远程端没有响应关闭连接'应该做什么? – Sarang 2017-01-31 09:55:44

1

这里rResponse类型的对象,它包含服务器对HTTP请求的响应。现在,在你的代码中使用,

r = requests.get("values from api") 

get方法必须接受一个url作为参数。可以使用dir(r)来查看对象的属性。你可以尝试其中的一些。如果有响应的json编码内容,则返回r.json()。现在josn与python dictionary非常相似。因此,您可以将其用作字典,将其存储在列表中并处理数据。

相关问题