mysql - SELECT INSERT 值错误

标签 mysql python-2.7 mysql-python xlrd

我正在尝试将数据插入表中。数据可以来自 CSV,也可以来自基于 CSV 中的值的另一个表。

我收到的错误:

unsupported format character 'R' (0x52) at index 64

代码:

def Test():
path = 'USA DIRECT.xls'
workbook = xlrd.open_workbook(path, on_demand = True)
sheet = workbook.sheet_by_index(0)
for rowx in xrange(1, sheet.nrows):
    try:
        Id = ''
        Year = datetime.now().strftime('%Y')
        Month = datetime.now().strftime('%m')
        Partner = 'USA Direct'
        PartnerType = 'Direct'
        Reseller = sheet.row_values(rowx, start_colx=12, end_colx=None)[0]
        Model = sheet.row_values(rowx, start_colx=2, end_colx=None)[0]
        InvDate = sheet.row_values(rowx, start_colx=11, end_colx=None)[0]
        CustomerNumber = ''
        Zip = sheet.row_values(rowx, start_colx=22, end_colx=None)[0]
        Quantity = sheet.row_values(rowx, start_colx=7, end_colx=None)[0]
        Total = sheet.row_values(rowx, start_colx=25, end_colx=None)[0]
        UnitPrice = sheet.row_values(rowx, start_colx=24, end_colx=None)[0]

        cursor.execute("INSERT INTO sales_olap (id, year, month, reporting_partner, reporting_partner_type, reseller_name, reseller_type, reseller_state, part_number, part_category, product_family, invoice_date, reseller_customer_number, reseller_zip_code, units, extended_cost, unit_cost) VALUES('%s', '%s', '%s','%s', '%s', '%s', (SELECT reseller_type FROM resellers WHERE reseller='%s' % Reseller), (SELECT reseller_state FROM resellers WHERE reseller='%s' % Reseller),'%s', (SELECT category FROM models WHERE model='%s' % Model), (SELECT family FROM models WHERE model='%s' % Model), '%s', '%s', '%s', '%s', '%s', '%s')" %(Id, Year, Month, Partner, PartnerType, Reseller, Model, InvDate, CustomerNumber, Zip, Quantity, Total, UnitPrice))
    except Exception, e:
        print (e)
workbook.release_resources()

任何帮助将不胜感激。

最佳答案

这是您的查询中第一次出现字母 R(0x52)

从经销商中选择 reseller_type WHERE reseller='%s' % 经销商

查看它,您需要使用另一个 % 前缀来转义 %,因为它没有用引号括起来,即

从经销商中选择 reseller_type WHERE reseller='%s' %% 经销商

也适用于其他内部选择

关于mysql - SELECT INSERT 值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47897089/

相关文章:

python - 如何使用 mysql.connector 禁用查询缓存

MySQL:如何查询父子关系?

mysql - 如何拆分字符串并与MySQL中字符串是否存在的列进行比较

mysql - MariaDB help_topic.* 文件

python - Pygame - 预览图片

Python 解压缩文件并连接结果

python - 将 python 脚本从 sqlite3 更改为 mysql 的语法

python - mysql查询在mysql-python中得到不同的结果

php - 使用 MySql Fetch Array 和 Ajax 创建可点击的链接

python - 确定子字符串在字符串列表中的位置