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 循环中创建一个逗号分隔的列表