将数字系列更改为列表,python

将数字系列更改为列表,python,python,list,csv,Python,List,Csv,我得到了一系列数字,我想把它们作为逗号分隔的数字放入python列表或元组中。我一直在研究堆叠,但也许我找不到正确的方式来表达我的问题,因为我一直在寻找将元组转换为列表的方法,反之亦然 这就是我所拥有的。我收到一封电子邮件,上面列出了一系列类似的数字(但还有几百个): 我将使用这些数字从数据库中进行查询,因此: NUMBER in (417985,417986,417987,417988,417989,417990) python中是否有任何方法可以转换这一系列数字,以便在查询中输入逗号分隔的

我得到了一系列数字,我想把它们作为逗号分隔的数字放入python列表或元组中。我一直在研究堆叠,但也许我找不到正确的方式来表达我的问题,因为我一直在寻找将元组转换为列表的方法,反之亦然

这就是我所拥有的。我收到一封电子邮件,上面列出了一系列类似的数字(但还有几百个):

我将使用这些数字从数据库中进行查询,因此:

NUMBER in (417985,417986,417987,417988,417989,417990)

python中是否有任何方法可以转换这一系列数字,以便在查询中输入逗号分隔的值?仅供参考,我经常使用python,因此我可以在这里使用python,不过我想听听其他任何方法。

如果要在SQL查询中使用这些数字,则需要生成SQL参数,而不是构建查询字符串

您可以读取行并将其转换为整数序列(一个列表即可):

numbers = [int(line) for line in email_lines]
然后为每个值生成一个具有足够占位符的查询:

statement = "SELECT * FROM table WHERE NUMBER IN ({0})".format(
    ', '.join(['?' * len(numbers)]))
其中,我假设您使用的数据库连接器使用
作为SQL参数占位符;它也可以是
%s

现在,您可以向数据库查询匹配的行:

cursor.execute(statement, numbers)
通过使用SQL参数,您可以免费获得一些东西:

  • 正确引用和转义值。这里不太重要,因为您已经将所有内容转换为整数,但最好不要自己转义和引用值;你几乎肯定会错过一些东西
  • 缓存查询计划的重用;数据库只需分析一次
    语句
    查询,就可以将结果重新用于后续查询
如果要复制并粘贴这些数字,请键入:

email_lines = """\
<paste your lines with numbers>
""".splitlines()
email_line=“”\
“.splitlines()

然后将我的答案的第一行应用于结果。

这可能是你想要的吗

raw = """417985
417986
417987
417988
417989
417990"""

numbers = [int(n) for n in raw.split()]

>> numbers_int
[417985, 417986, 417987, 417988, 417989, 417990]
或者如果你想构造一个字符串

numbers_str = [n for n in raw.split()]
>> ",".join(numbers_str)
'417985,417986,417987,417988,417989,417990'

你可能在谈论SQL查询?是的,我是。谢谢你指出这一点。
“数字在(%s)%”、“。加入(用你的数字列出)
或类似的东西是你想要的吗?谢谢Martijn!也许我需要再澄清一点。我的想法是将一系列数字复制到pythonshell中,然后解析每个数字,这样我就可以得到一个列表或元组。然后,我可以将列表复制并粘贴到用于查询的程序中。我的最终查询将如原问题中所述,因此我只想将每个数字用逗号分隔,并封装在lsit容器中,以便复制和粘贴。@Mike:如果您只想复制和粘贴,我给了您一种方法。这样就可以得到一个字符串列表,粘贴的每行一个字符串。
[int(line)for line in email_lines]
列表将为您提供一个整数列表。谢谢Martijn。我花了几分钟才弄明白这是怎么回事。现在很有魅力。这是最后一次编辑,包括email_lines变量。谢谢Sebastian。我也试了一次又一次,我得到了一些同样有效的东西。
numbers_str = [n for n in raw.split()]
>> ",".join(numbers_str)
'417985,417986,417987,417988,417989,417990'