2017-07-29 76 views
-1

我有一套向SnapToRoads Api发送请求的代码。数据在这种情况下设置的长度为约27,但示出的“originalIndex”通过查看哪些被保持上升到53为什么for循环在这里打印所有内容,然后列出超出范围的值?

results = requests.get("https://roads.googleapis.com/v1/snapToRoads?path=12.919082641601562,77.65169525146484|12.919082641601562,77.65169525146484|12.918915748596191,77.6517105102539|12.918915748596191,77.6517105102539|12.918656349182129,77.65177154541016|12.918656349182129,77.65177154541016|12.918524742126465,77.6517562866211|12.918524742126465,77.6517562866211|12.918295860290527,77.65178680419922|12.918295860290527,77.65178680419922|12.918216705322266,77.65177154541016|12.918216705322266,77.65177154541016|12.918027877807617,77.65178680419922|12.918027877807617,77.65178680419922|12.917914390563965,77.65178680419922|12.917914390563965,77.65178680419922|12.917774200439453,77.65178680419922|12.917774200439453,77.65178680419922|12.917659759521484,77.65179443359375|12.917659759521484,77.65179443359375|12.917553901672363,77.65180969238281|12.917553901672363,77.65180969238281|12.917448043823242,77.6518325805664|12.917448043823242,77.6518325805664|12.917227745056152,77.65177917480469|12.917227745056152,77.65177917480469|12.91706657409668,77.65178680419922|12.91706657409668,77.65178680419922|12.916943550109863,77.65178680419922|12.916943550109863,77.65178680419922|12.916749000549316,77.65178680419922|12.916749000549316,77.65178680419922|12.916621208190918,77.65179443359375|12.916621208190918,77.65179443359375|12.91647720336914,77.65180206298828|12.91647720336914,77.65180206298828|12.91647720336914,77.65180206298828|12.91647720336914,77.65180206298828|12.916269302368164,77.65177154541016|12.916269302368164,77.65177154541016|12.916149139404297,77.65178680419922|12.916149139404297,77.65178680419922|12.916014671325684,77.65177917480469|12.916014671325684,77.65177917480469|12.91580867767334,77.65179443359375|12.91580867767334,77.65179443359375|12.915785789489746,77.65182495117188|12.915785789489746,77.65182495117188|12.915775299072266,77.65180969238281|12.915775299072266,77.65180969238281|12.915729522705078,77.65179443359375|12.915729522705078,77.65179443359375|12.91568374633789,77.65179443359375|12.91568374633789,77.65179443359375&key=AIzaSyAmplaUG26XJGwPrLbky2bHQ-eBmQvZUVU") 
snappoints = results.json()['snappedPoints'] 
snapdata = set() 
for point in snappoints: 
    # this is each individual element in snapPoints array 
    snapdata.add(point['originalIndex']) 
print (snapdata) 
length = len(snapdata) 
print (length) 

欲对应我与原始索引中的数据,但该API显示的索引数超出了请求的发送范围。请帮忙。由于

PS:我用的API

看似for循环搞砸小白:

api1 = [] 
for i in range(0, length-1): 
    dataPoint = data[i] 
    dataPoint1 = data [i+1] 
    coordinate = dataPoint['coordinates'] 
    coordinate1 = dataPoint1['coordinates'] 
    x = coordinate[0] 
    y = coordinate[1] 
    x1 = coordinate1[0] 
    y1 = coordinate1[1] 

    str1 = str(x) 
    str2 = str(y) 
    str3 = '|' 
    apiData = str1 + ',' + str2 + str3 
    apiData = apiData+ (str1 + ',' + str2 + str3) 
    print (apiData) 
    api1.append(apiData) 
    i +=1  
print (api1) 
print (len(api1)) 
+0

算你'Requests'参数,你送** ** 54和响应甚至** ** 54。所有的数据都是**加倍**! – stovfl

+0

Yeahhh非常感谢!我的坏,len(数据)给了我27。但奇怪的是,没有数据重复:/。我运行了一个for循环来获取这种格式的数据。 –

+0

[编辑]你的问题,并显示你的'循环...'。 – stovfl

回答

0

此行是加倍点的罪魁祸首!

apiData = apiData+ (str1 + ',' + str2 + str3) 

apiData早已str1 + ',' + str2 + str3,再次分配apiData
删除此行将修复加倍。

您的print (len(api1))指望加倍字符串,因此您会看到。

要查看点的实时计数,使用以下命令:

print(len(api1.split('|'))) 
+0

谢谢你。傻我 –

+0

阅读[我应该做什么当有人回答我的问题?](http://stackoverflow.com/help/someone-answers) – stovfl