从id列表中删除单引号

时间:2012-09-26 14:56:26

标签: python api

我需要附加/格式化带有API调用ID列表的URL。

但是,当我将列表放在API的末尾时:

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

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

我尝试将列表转换为字符串并删除方括号,执行:

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

但我仍然遇到同样的问题。我假设它是由一开始的单引号引起的。

我尝试从字符串中删除撇号:

a.replace("'", "")

现在我已经没有想法了。

1 个答案:

答案 0 :(得分: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'])