当前位置: 首页 > 知识库问答 >
问题:

TypeError:序列项0:预期字符串,int找到

东方智敏
2023-03-14

我试图将字典中的数据插入到数据库中。我想根据数据类型迭代这些值并相应地设置它们的格式。以下是我使用的代码片段:

def _db_inserts(dbinfo):
    try:
        rows = dbinfo['datarows']

        for row in rows:
            field_names = ",".join(["'{0}'".format(x) for x in row.keys()])
            value_list = row.values()

            for pos, value in enumerate(value_list):
                if isinstance(value, str):
                    value_list[pos] = "'{0}'".format(value)
                elif isinstance(value, datetime):
                    value_list[pos] = "'{0}'".format(value.strftime('%Y-%m-%d'))

            values = ",".join(value_list)

            sql = "INSERT INTO table_foobar ({0}) VALUES ({1})".format(field_names, values)

    except Exception as e:
        print 'BARFED with msg:',e

当我使用一些样本数据(见下文)运行algo时,我得到了错误:

TypeError:序列项0:预期字符串,int找到

给出上述错误的值列表数据示例如下:

value_list = [377, -99999, -99999, 'f', -99999, -99999, -99999, 1108.0999999999999, 0, 'f', -99999, 0, 'f', -99999, 'f', -99999, 1108.0999999999999, -99999, 'f', -99999, 'f', -99999, 'f', 'f', 0, 1108.0999999999999, -99999, -99999, 'f', 'f', 'f', -99999, 'f', '1984-04-02', -99999, 'f', -99999, 'f', 1108.0999999999999] 

我做错了什么?

共有3个答案

戈曾琪
2023-03-14

代替

values = ",".join(value_list)

具有

values = ','.join([str(i) for i in value_list])

values = ','.join(str(value_list)[1:-1])
呼延承平
2023-03-14

虽然给出的列表理解/生成器表达式答案还可以,但我发现这更容易阅读和理解:

values = ','.join(map(str, value_list))
贡念
2023-03-14

字符串。join连接字符串列表中的元素,而不是int。

请改用此生成器表达式:

values = ','.join(str(v) for v in value_list)
 类似资料:
  • 问题内容: 需要帮忙。有一个名为arglist的数据列表,例如:[‘dlink’,’des’,‘1210’,’c’,24] <-这就是“打印”视图。 这段代码: 它给: 怎么了? 问题答案: 当json.loads需要一个字符串时,您正在尝试加载文件对象。您可以使用 或者更好: 在第一个示例中,文件是打开的,但从未关闭(不好的做法)。在第二个示例中,上下文管理器在离开上下文块后关闭文件。

  • 问题内容: 尝试解码JSON 时出现错误。 我用于API调用的URL在浏览器中可以正常工作,但是通过curl请求完成时会出现此错误。以下是我用于curl请求的代码。 错误发生在 完整回溯: 追溯: 问题答案: 总结评论中的对话: 不需要使用库,Python作为模块包含了相同的库。 无需解码从UTF8到unicode的响应,/ 方法可以本地处理UTF8编码的数据。 有一个非常古老的API。除非您有特

  • 问题内容: 我在将值写入文件时遇到以下错误。您能帮我弄清楚问题出在哪里以及如何解决吗? 错误: 问题答案: 假设您只想将字符串写入文件,请更改为或issue 。

  • 问题内容: 我有一个日期字符串的任意列表(mm-yyyy),如下所示: 我需要此列表首先按年(升序)级别排序,然后按月(升序)级别排序..以便逻辑顺序可以是: 我该如何实现? 问题答案: 尝试这个:

  • 问题内容: 我有一个字符串序列-最多200万。它们不连续。意思是有差距。在0000003之后说下一个字符串可能是0000006。我需要找出所有这些间隙。在上述情况下(0000004、0000005)。 到目前为止,这是我所做的- 但是正如您可能已经猜到的那样,自从我使用以来,这很慢。如果我使用来预填充curr_ids,它将更快。但是填充哈希表的复杂性是什么?最快的方法是什么。 问题答案: 您可以对

  • 我正面临一个关于GSON json到Java的问题。我在这里查了很多帖子,但我找不到我的问题的解决方案。所以我在这里列出我的问题。谢谢! 以下是我的Json数据 非常非常感谢!!