Python 对变量内容进行数字排序
我在这里做错了什么。我返回的数字,但希望他们返回在最低到最高的顺序Python 对变量内容进行数字排序,python,api,loops,sorting,int,Python,Api,Loops,Sorting,Int,我在这里做错了什么。我返回的数字,但希望他们返回在最低到最高的顺序 def bus(): busurl = ('https://api.tfl.gov.uk/Line/9/Arrivals?stopPointId=IDHERE&app_id= % secret &app_key= % key') bus = requests.get(busurl) busarrival = bus.json() count = 0 for i in bu
def bus():
busurl = ('https://api.tfl.gov.uk/Line/9/Arrivals?stopPointId=IDHERE&app_id= % secret &app_key= % key')
bus = requests.get(busurl)
busarrival = bus.json()
count = 0
for i in busarrival:
if count <= 2:
status = (i['timeToStation'])
result = (status / 60)
print 'Next bus in {} mins'.format(result)
count += 1
def总线():
busurl=('https://api.tfl.gov.uk/Line/9/Arrivals?stopPointId=IDHERE&app_id= %机密和应用程序密钥=%key')
总线=请求.get(总线URL)
busarival=bus.json()
计数=0
在巴士抵达时:
如果计数您可以使用特殊的键
功能按到达时间排序:
for i in sorted(busarrival, key=lambda i: i['timeToStation']):
if count <= 2:
status = (i['timeToStation'])
...
当然,这要求每个条目必须'timeToStation'
字段,并且字段必须是数字,而不是字符串。如果是字符串,请先转换为数字,例如,key=lambda i:int(i['timeToStation'])
修复缩进。您在哪里返回值?抱歉,我在最后打印,但打印的不是从低到高。我将如何实现这一点?我试过使用status.sort,但没有用。使用sorted(busarival)
应该可以解决这个问题。谢谢你的解释。我真的很感激!
busarrival.sort(key=lambda i: i['timeToStation'])
for i in busarrival:
...