热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python拼接sql语句,如何在Python的SQL语句中使用变量和/或连接?

我在名为res的列表中有一个ID列表,在将结果保存到数组中之前,我希望逐行使用该列表作为SQL查询的WHERE条件:idsgrupos0[

我在名为res的列表中有一个ID列表,在将结果保存到数组中之前,我希望逐行使用该列表作为SQL查询的WHERE条件:ids

grupos

0 [160, 161, 365, 386, 471]

1 [296, 306]

下面是我试图在SQL查询中插入的内容:listado = [None]*len(res)

# We store the hashtags that describes the best the groups

# We iterate on the people of a group to construct the WHERE condition

print "res : ", res

for i in (0,len(res)):

conn = psycopg2.connect(**params)

cur = conn.cursor()

listado = [None]*len(res)

for i in (0,len(res)):

print "res[i:p] : ", res.iloc[i]['ids']

cur.execute("""SELECT COUNT(swipe.eclipse_id), subscriber_hashtag.hashtag_id FROM subscriber_hashtag

-- join para que las publicidades/eclipses que gusta un usarios estan vinculadas con las de la tabla de correspondencia con los hashtag

INNER JOIN eclipse_hashtag ON eclipse_hashtag.hashtag_id = subscriber_hashtag.hashtag_id

-- join para que los usarios estan vinculados con los de la tabla de correspondencia con los hashtag

LEFT OUTER JOIN swipe ON subscriber_hashtag.subscriber_id = swipe.subscriber_id

-- recobremos los "me gusta"

WHERE subscriber_hastag.subscriber_id in (%s)

GROUP BY subscriber_hashtag.hashtag_id

ORDER BY COUNT(swipe.eclipse_id) DESC;""",(res.iloc[i]['ids']))

n = cur.fetchall()

listado[i] = [{"count": elem[0], "eclipse_id": elem[1]} for elem in n]

可再现示例的数据

提供进一步的数据信息:subscriber_id hashtag_id

160 345

160 347

161 345

160 334

161 347

306 325

296 362

306 324

296 326

161 322

160 322

这里的输出应该是:{0:[324,1],[325,1],[326,1],[362,1], 1 : [345,2],[347,2],[334,1]}

当前错误消息

错误:标记输入时发生意外错误

以下回溯可能已损坏或无效

错误消息是:('EOF in multi-line string',(1,50))---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

in ()

39 WHERE subscriber_hastag.subscriber_id in (%s)

40 GROUP BY subscriber_hashtag.hashtag_id

---> 41 ORDER BY COUNT(swipe.eclipse_id) DESC;""",(res.iloc[i]['ids']))

42

43 n = cur.fetchall()

TypeError:不是所有参数都在字符串格式化期间转换



推荐阅读
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 本章节从商业数据分析与挖掘的角度,深入探讨了特征工程的关键技术和应用方法,包括数据预处理、特征构建、特征提取及特征选择。详细阐述了如何系统地构建用于分析的结构化数据,为全栈开发提供了坚实的基础。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 在Tableau中进行多表关联后统计时遇到的常见问题及解决方法
    在使用Tableau进行多表关联统计时,常遇到数据不匹配、重复记录等问题。例如,在处理员工信息表时,若员工ID未正确关联,可能导致薪资统计错误。本文将详细探讨这些问题的成因,并提供有效的解决方案,如利用Tableau的数据清理工具和高级连接功能,确保数据准确性和完整性。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • MySQL:不仅仅是数据库那么简单
    MySQL不仅是一款高效、可靠的数据库管理系统,它还具备丰富的功能和扩展性,支持多种存储引擎,适用于各种应用场景。从简单的网站开发到复杂的企业级应用,MySQL都能提供强大的数据管理和优化能力,满足不同用户的需求。其开源特性也促进了社区的活跃发展,为技术进步提供了持续动力。 ... [详细]
  • Java 8 引入了 Stream API,这一新特性极大地增强了集合数据的处理能力。通过 Stream API,开发者可以更加高效、简洁地进行集合数据的遍历、过滤和转换操作。本文将详细解析 Stream API 的核心概念和常见用法,帮助读者更好地理解和应用这一强大的工具。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 本文深入探讨了数据库性能优化与管理策略,通过实例分析和理论研究,详细阐述了如何有效提升数据库系统的响应速度和处理能力。文章首先介绍了数据库性能优化的基本原则和常用技术,包括索引优化、查询优化和存储管理等。接着,结合实际应用场景,讨论了如何利用容器化技术(如Docker)来部署和管理数据库,以提高系统的可扩展性和稳定性。最后,文章还提供了具体的配置示例和最佳实践,帮助读者在实际工作中更好地应用这些策略。 ... [详细]
  • 尽管存在唯一列,仍显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用”的消息。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • 2016年11月7日周一:Kettle系统监测销售团队每日任务完成情况分析
    本文介绍了2016年11月7日对Kettle系统中销售团队每日任务完成情况的分析。具体包括:目标表中的激活客户数是指当月前30天内未下过单的客户;通过SQL查询语句获取销售员的当月销售确认金额、订单总额、首单数量及激活客户数量等关键指标,以便全面评估销售业绩。 ... [详细]
  • 本文探讨了使用JavaScript实现多种经典排序算法的高效方法,包括冒泡排序、选择排序、插入排序、归并排序和快速排序。为了确保代码的结构清晰和可维护性,我们首先定义了一个 `ArrayList` 类,该类中包含了待排序的数组声明。通过这种方式,我们不仅能够更好地组织代码,还能提高算法的执行效率和可读性。此外,我们还对每种排序算法进行了详细的性能分析和优化建议,以帮助开发者在实际应用中选择最合适的排序方法。 ... [详细]
author-avatar
佩刚坤斌冠如_567
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有