这段代码如何pythonic?
ringa_lee
ringa_lee 2017-04-18 09:28:53
[Python讨论组]

查询数据库所有idlist里的文章,加入article_list.

article_list = []
for i in range(0, len(list)):
    cur.execute('select * from articles where id = {}'.format(list[i]))
    article_list.append(cur.fetchone())

怎么把上面的一句话写成一句python语句呢?

article_list.append(
    cur.execute('select * from articles where id = {}'.format(list[i]))
       for i in range(0, len(list))
                    )

我这么写,但是返回article_list[<generator object <genexpr> at 0x10e112960>].似乎并没有把具体的值append.

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
巴扎黑
article_list = [cur.fetchone() for i in list if cur.execute('.....')]

因为execute返回的是结果数量,所以if后面可以根据需求自行发挥……

伊谢尔伦

我觉得你首先应该SQLic……

cur.execute('select * from articles where id in ({})'.format(','.join(str(v) for v in list)))

当然更重要的是不要随便自己拼SQL,SQL注入一点都不好玩,一 点 都 不 好 玩
而且不要随便用list来当变量名字啊……

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号