我正在尝试检索所有(自我)用户签到,但是当我解析返回的JSON时,我似乎无法进入单独的签入级别,这是我正在测试的代码。有点像Python和JSON的新手,并努力理解这有什么问题,因为如果我将'items'添加到for循环它甚至从未输入。任何帮助将不胜感激。
url = 'https://api.foursquare.com/v2/users/self/checkins/'
full_url = url + '?' + data
req = urllib2.Request(full_url)
opener = urllib2.build_opener()
f = opener.open(req)
fsdata = simplejson.load(f)
for item in fsdata['response']['checkins']['items']:
print item
对不起应该很清楚。为清楚起见,我省略了auth过程。如果我将fsdata返回到页面,我会看到顶级的json级别:
通知 元 响应
答案 0 :(得分:1)
问题是我的epoch格式我传递给Foursquare API调用是错误的(它是以毫秒为单位)所以我从来没有得到任何签到细节,这里是更正的代码:
access_token = request.session.get('access_token')
#calculate unix epoch minus one week
daynow=date.today()-timedelta(days=7)
#convert to epoch in seconds
epoch = int(time.mktime(daynow.timetuple()))
params = { 'oauth_token' : access_token, 'v' : today_yyyymmdd(), 'afterTimestamp' : epoch }
data = urllib.urlencode( params )
#endpoint call for all user checkins
url = 'https://api.foursquare.com/v2/users/self/checkins/'
full_url = url + '?' + data
req = urllib2.urlopen(full_url)
fsdata=json.load(req)
fsout=[]
for item in fsdata['response']['checkins']['items']:
fsout.append(item['id'])
fsout.append(item['createdAt'])
fsout.append(item['venue']['name'])