操作列表成为API调用的变量

时间:2017-01-08 23:11:16

标签: python parameters tuples

我列出了经度和纬度。

list_lat_long = [40.69113021716633, -74.17789320977796, 40.6443530054402, -74.34847470072029, 40.774062720524796, -73.67030582848912, 40.71410381905342, -73.95113368885083, 31.778799, 119.959693, 50.10810880074701, 14.267756265998923]

我想将此列表转换为一个变量,然后我可以将其传递给我的API调用,该调用需要采用以下格式:

params = {'Content-Type ': 'application/json',  "api_key": REDACTED, "size": "500x500", "markers": "40.6911, -74.1779" "|" "40.6444, -74.3485"}

目标:

markers = "40.6911, -74.1779" "|" "40.6444, -74.3485"
params = {"markers": markers}

但是,我对如何做到这一点感到困惑 - 我写了以下函数:

def clean_lat_long(list):
  y = []
  for i in list:
    y.append(round(i, 4))
    w = zip(y[::2], y[1::2])
    q = []
    for i in w:
        q.append(i + (""+ "|",))
  return q

这给了我:

[(40.6911, -74.1779, '|'), (40.6444, -74.3485, '|'), (40.7741, -73.6703, '|'), (40.7141, -73.9511, '|'), (31.7788, 119.9597, '|'), (50.1081, 14.2678, '|')]

哪个接近,但我仍然需要在每个长/纬线对周围添加引号并删除分隔每个项目的逗号。我也觉得有更好的方法来做到这一点。

2 个答案:

答案 0 :(得分:0)

这就是你想要的东西吗?

>>> '|'.join('{:.4f},{:.4f}'.format(lat, long_) for lat, long_ in zip(list_lat_long[::2], list_lat_long[1::2]))
'40.6911,-74.1779|40.6444,-74.3485|40.7741,-73.6703|40.7141,-73.9511|31.7788,119.9597|50.1081,14.2678'

答案 1 :(得分:0)

我明白了 - 谢谢大家的帮助。

这就是我正在寻找的功能(当传递到拉特和长篇名单时)

def input_api(l):
f = []
for i in range(0, len(l)-1):
   parameter = str(l[i][0]) + ' ' + str(l[i][1])+ '|' + str(l[i+1][0]) + ' ' + str(l[i+1][1])
   f.append(parameter)
return f