我希望在地球地图中显示来自用户'airqualityegg'的所有Feed。为了做到这一点,我用Python编写了以下脚本(如果你要自己尝试,在你使用的文本编辑器中正确缩进代码):
import json
import urllib
import csv
list=[]
for page in range(7):
url = 'https://api.xively.com/v2/feeds?user=airqualityegg&per_page=100page='+str(page)
rawData=urllib.urlopen(url)
#Loads the data in json format
dataJson = json.load(rawData)
print dataJson['totalResults']
print dataJson['itemsPerPage']
for entry in dataJson['results']:
try:
list2=[]
list2.append(entry['id'])
list2.append(entry['creator'])
list2.append(entry['status'])
list2.append(entry['location']['lat'])
list2.append(entry['location']['lon'])
list2.append(entry['created'])
list.append(list2)
except:
print 'failed to scrape a row'
def escribir():
abrir = open('all_users2_andy.csv', 'w')
wr = csv.writer(abrir, quoting=csv.QUOTE_ALL)
headers = ['id','creator', 'status','lat', 'lon', 'created']
wr.writerow (headers)
for item in list:
row=[item[0], item[1], item[2], item[3], item[4], item[5]]
wr.writerow(row)
abrir.close()
escribir()
我已经包含了对7个页面的调用,因为此用户发布的Feed总数为684(正如您在浏览器中直接写“https://api.xively.com/v2/feeds?user=airqualityegg”时所看到的那样)
运行此脚本产生的csv文件确实存在重复的行,可能会解释为每次调用页面时结果的顺序不同。因此,相同的行可以包括在不同调用的结果中。出于这个原因,我得到的结果不那么独特。
您知道为什么包含在不同页面中的结果不是唯一的吗?
谢谢, 玛丽亚
答案 0 :(得分:0)