程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了创建 SQL 插入脚本,返回:TypeError:+ 不支持的操作数类型:'NoneType' 和 'str'大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_262_0@如何解决创建 SQL 插入脚本,返回:TypeError:+ 不支持的操作数类型:'NoneType' 和 'str'? 开发过程中遇到创建 SQL 插入脚本,返回:TypeError:+ 不支持的操作数类型:'NoneType' 和 'str'的问题如何解决?下面主要结合日常开发的经验,给出你关于创建 SQL 插入脚本,返回:TypeError:+ 不支持的操作数类型:'NoneType' 和 'str'的解决方法建议,希望对你解决创建 SQL 插入脚本,返回:TypeError:+ 不支持的操作数类型:'NoneType' 和 'str'有所启发或帮助;

我有以下数据框。

df = pd.DataFrame({'vin': ['test'],'modelID':['5641'],'year': ['2021'] })

我正在尝试使用以下函数从它创建一个 sql 插入脚本..

import pandas as pd
    def createsqlInsertStatement():
        global sql_texts,row
        sql_texts = []
        for index,row in df.iterrows():
            sql_texts.append('INSERT INTO '+ ' registry'+' (source,create_time,geo_group_ID,status,make,vin,modelID,year)' 
            + ' VALUES "MANUAL_LOAD",sysdate,42,"MITSUBISHI",'+ ',' + str(tuple(row.values))) +';'
            return sql_texts

但我不断收到:

TypeError                                 TraceBACk (most recent call last)
c:\Users\Desktop\testsql.py in <module>
----> 1 createsqlInsertStatement()

c:\Users\Desktop\testsql.py in createsqlInsertStatement()
      9     sql_texts = []
     10     for index,row in df.iterrows():
---> 11         sql_texts.append('INSERT INTO '+ ' registry'+' (source,year)' 
     12         + ' VALUES "MANUAL_LOAD",' + str(tuple(row.values))) +';'
     13         return sql_texts

TypeError: unsupported operand type(s) for +: 'nonetype' and 'str'

我需要...

INSERT INTO registry (source,year) VALUES ('MANUAL_LOAD','MITSUBISHI','5641','2021');

快疯了,正在寻找我找不到的无类型,还是我看错了?

@H_262_0@解决方法

您在 append 语句的末尾有一个错误: +';' 应该在“append”的括号内。现在您正在尝试将“追加”的结果与字符串(字符)';' 连接起来。

更正为:

sql_texts.append('INSERT INTO '+ ' registry'+' (source,create_time,geo_group_id,status,make,vin,modelId,year)' 
            + ' VALUES "MANUAL_LOAD",sysdate,42,"MITSUBISHI",'+ ',' + str(tuple(row.values)) +';')

编辑:除了更正上面的语法错误之外,我相信您的代码不会为您提供您正在寻找的输出,因为您不想将元​​组添加到您的字符串中。此语句可能更简洁(using format function 而不是 +

sql_texts.append("INSERT INTO registry (source,year) VALUES (\"MANUAL_LOAD\",\"MITSUBISHI\",\"{0}\",\"{1}\");".format(row.values[1],row.values[2]))

输出如下:

['INSERT INTO registry (source,year) VALUES ("MANUAL_LOAD","5641","2021");']

希望这会有所帮助!

,

您错过了 sql_text.append 的右括号并在 str 中多加了一个括号

试试这个它会返回一个带查询的数组

import pandas as pd
    def createSqlInsertStatement():
        global sql_texts,row
        sql_texts = []
        for index,row in df.iterrows():
            sql_texts.append('INSERT INTO '+ ' registry'+' (source,' + str(tuple(row.values)) +';')
            return sql_texts

大佬总结

以上是大佬教程为你收集整理的创建 SQL 插入脚本,返回:TypeError:+ 不支持的操作数类型:'NoneType' 和 'str'全部内容,希望文章能够帮你解决创建 SQL 插入脚本,返回:TypeError:+ 不支持的操作数类型:'NoneType' 和 'str'所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。