当前位置: 首页 > 面试题库 >

使用Python将清单插入我的资料库

景胜涝
2023-03-14
问题内容

我想在数据库中插入一个列表,但是不能。

这是我需要的一个例子:

variable_1 = "HELLO"
variable_2 = "ADIOS"
list = [variable_1,variable_2]

INSERT INTO table VALUES ('%s') % list

可以这样做吗?我可以插入列表作为值吗?当我尝试它时,出现错误提示,这是因为MySQL语法错误


问题答案:

原始问题的答案是:不,您不能插入这样的列表。

但是,通过一些调整,您可以通过使用%r并传入一个元组来使代码工作:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1, variable_2]
print "INSERT INTO table VALUES %r;" % (tuple(varlist),)

不幸的是,这种变量插入样式使您的代码容易受到SQL注入攻击的攻击。

相反,我们建议使用Python的DB
API
并为要插入的数据构建带有多个问号的自定义查询字符串:

variable_1 = "HELLO"
variable_2 = "ADIOS"
varlist = [variable_1,variable_2]
var_string = ', '.join('?' * len(varlist))
query_string = 'INSERT INTO table VALUES (%s);' % var_string
cursor.execute(query_string, varlist)

SQLite3文档开头的示例显示了如何使用问号传递参数,并说明了为什么必须使用它们(本质上,它可以确保正确引用变量)。



 类似资料:
  • 问题内容: 我在Python中有一个JSON对象。我正在使用Python DB-API和SimpleJson。我正在尝试将json插入MySQL表中。 目前出现错误,我相信这是由于JSON对象中的单引号引起的。 如何使用Python将JSON对象插入MySQL? 这是我收到的错误消息: 另一个错误供参考 这是我正在使用http://pastebin.com/q5QSfYLa的代码的链接 问题答案:

  • 问题内容: 运行代码 退货 因此,每次在列表列表中每次更新元组(列表)的第一个参数,但第二个参数list [0]却没有更新。有人可以解释这里发生的事情并提出解决方法吗?我想输出 问题答案: 列表是可变类型-为了创建副本(而不只是传递相同的列表),您需要明确地这样做: 但是,已经是Python内置的名称-最好不要将该名称用作变量。这是一个不用作变量名并复制的版本: 请注意,我演示了两种不同的方法来复

  • 问题内容: 我最近才刚刚开始自学SQL,并且能够将各种教程中所需的几乎所有内容组合在一起,但这使我无法自拔。我们有一个表格,其中包含我们产品的所有物料清单信息。我只需要其中的4列-PPN_I,CPN_I,QUANTITY_I,BOMNAME_I- 分别是项目编号,原材料编号,数量和BOMName。许多BOM都包含子装配体。我需要一个结果集,其中列出了BOM表的所有组件,无论级别如何。我很确定我需要

  • 本文向大家介绍python编写简单爬虫资料汇总,包括了python编写简单爬虫资料汇总的使用技巧和注意事项,需要的朋友参考一下   爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2、BeautifulSoup实现简单爬虫,scrapy也有实现过。最近想更好的学习爬虫,那么就尽可能的做记录吧。这篇博客就我今天的一个学习过程写写吧。 一 正则表达式   正则表达式是一个很强大的工具了,众

  • 一、环境配置 1、Eclipse 版本 3.3.X 2、Hadoop版本 0.20.2 二、配置流程 1、将\hadoop-0.20.2\hadoop-0.20.2\contrib\eclipse-plugin\下的hadoop-0.20.2-eclipse-plugin.jar拷贝到eclipse-SDK-3.3.2-win32\eclipse\plugins\下。 2、启动eclipse,点击

  • 一、背景 Hadoop的MapReduce中多文件输出默认是TextOutFormat,输出为part-r- 00000和part-r-00001依次递增的文件名。hadoop提供了 MultipleOutputFormat类,重写该类可实现定制自定义的文件名。 二、技术细节 1.环境:hadoop 0.19(目前hadoop 0.20.2对MultipleOutputFormat支持不好),li