Python:从查询中创建逗号分隔的字符串

Posted

技术标签:

【中文标题】Python:从查询中创建逗号分隔的字符串【英文标题】:Python: creating a comma separated string from a query 【发布时间】:2013-08-30 02:54:42 【问题描述】:

我有一个问题

 messages = Message.objects.all()

我想创建一个由 message.number 中的所有数字组成的逗号分隔字符串

这是我尝试过的:

number = ""
for obj in messages:
     number = number + "," + obj.number

我该怎么做? PS 这个字符串可能非常长,超过 400,000 个数字!

【问题讨论】:

你要把这个写回文件吗? 【参考方案1】:

使用str.join:

number = ','.join(messages)

【讨论】:

【参考方案2】:

使用join()

",".join(str(msg.number) for msg in Message.objects.all())

此外,由于您的查询集很大,请考虑使用查询集迭代器将结果分成块。欲了解更多信息,请参阅:

Why is iterating through a large Django QuerySet consuming massive amounts of memory? Limiting Memory Use in a *Large* Django QuerySet http://djangosnippets.org/snippets/1949/ http://djangosnippets.org/snippets/1170/

【讨论】:

如果msg.number实际上是一个数字,这将不起作用,最好先将其转换为字符串;你还有额外的( )

以上是关于Python:从查询中创建逗号分隔的字符串的主要内容,如果未能解决你的问题,请参考以下文章

Python:试图从一个寻找可被 3 整除的数字的 for 循环中创建一个逗号分隔的列表

pyspark 从逗号分隔值列表中创建多行

如何从包含逗号分隔条目的变量中创建(不同的)值列表?

使用 pivot_table() 从重复的字符串中创建列 [重复]

SQL中逗号分隔的查询结果转换成单个字符串放到in语句里

如何在 SQL 的动态查询中使用 Pass 逗号分隔的字符串