2012-09-26 254 views
2

我需要为API调用追加/格式化带有ID列表的URL。从ID列表中删除单引号

然而,当我把名单在API的末尾:

https://api.twitter.com/1.1/users/lookup.json?user_id=%s'%a 

我只是得到一个空字符串作为响应。

我试图打开列表转换为字符串并去除方括号,这样做的:

a = str(followers['ids'])[1:-1] 

,但我仍然得到了同样的问题。我假设这是由一开始的单引号造成的。

我试图从字符串做除去撇号:

a.replace("'", "") 

,现在我已经江郎才尽。

+3

什么是你想要做什么呢? – Antimony

+0

你可以显示你想要的结果网址是什么,你实际得到了什么? – Useless

+0

你没有认为你有问题,或者你写得很不清楚。你的问题并不在于你的代码中的流浪者。你的问题是你正在尝试进行字符串替换而不提供任何字符串。您需要提供带有用户ID或逗号分隔的相同列表的API。 “%s%a”不是有效的ID。 – selllikesybok

回答

12

我试图从字符串做除去撇号...

您可以使用s = s.replace("'", "")字符串中删除撇号。 .replace()返回一个新的字符串,但不会更改原始字符串,因此您将存储返回的字符串。

>>> string = "he's a jolly good fellow" 
>>> string = string.replace("'", "") 
>>> string 
'hes a jolly good fellow' 

但我不认为这是不是你的问题。

ids need to be comma separated,所以你可能想要使用.join()从你的ID列表中创建字符串。例如:

>>> ids = ["1", "23", "123"] 
>>> ",".join(ids) 
'1,23,123' 

在你的情况下,假设followers['ids']包含id作为字符串列表,您可以使用生成您的网址:

ids = ",".join(followers['ids']) # generate string of ids (comma separated) 
url = "https://api.twitter.com/1.1/users/lookup.json?user_id=%s" % ids 

如果followers['ids']是一个整数,而不是字符串列表,然后有由于.join()仅适用于一系列字符串,因此需要做更多的工作。下面是这些整数转换成字符串在运行的一种方式(使用generator expression):

ids = ",".join(str(id) for id in followers['ids'])