Python:需要整数。哪里?为什么?

2024-10-04 09:29:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我对这个简短的代码片段有问题:

for i, row in enumerate(rows):
    row["last_check"] = last_check_ts
    row_filtered = {
        k: v.replace('\r', '') for k, v in row.iteritems() if v is not None
    }

它给了我以下错误:

k: v.replace('\r', '') for k, v in row.iteritems() if v is not None
TypeError: an integer is required

我做错什么了?到底什么是整数?你知道吗

编辑:

这就是控制台上打印的rows的样子:

[{'COD_PER_FISICA': None, 'INCLUIDO_POR': 'FU', 'MODIFICADO_POR': None, 'ES_FISICA': 'N', 'COD_PERSONA': '37470', 'NOMBRE': 'BLABLA', 'COD_PER_JURIDICA': '37470', 'FECHA_MODIFICACION': None, 'FECHA_INCLUSION': datetime.datetime(2003, 6, 7, 18, 22, 13)},
{'COD_PER_FISICA': None, 'INCLUIDO_POR': 'FU', 'MODIFICADO_POR': 'FOO', 'ES_FISICA': 'N', 'COD_PERSONA': '37471', 'NOMBRE': 'blablabla', 'COD_PER_JURIDICA': '37471', 'FECHA_MODIFICACION': datetime.datetime(2003, 9, 2, 12, 14, 35), 'FECHA_INCLUSION': datetime.datetime(2003, 6, 7, 18, 22, 13)},
{'COD_PER_FISICA': None, 'INCLUIDO_POR': 'FU', 'MODIFICADO_POR': None, 'ES_FISICA': 'N', 'COD_PERSONA': '37472', 'NOMBRE': 'blablabala', 'COD_PER_JURIDICA': '37472', 'FECHA_MODIFICACION': None, 'FECHA_INCLUSION': datetime.datetime(2003, 6, 7, 18, 22, 13)},
{'COD_PER_FISICA': None, 'INCLUIDO_POR': 'FU', 'MODIFICADO_POR': None, 'ES_FISICA': 'N', 'COD_PERSONA': '37473', 'NOMBRE': 'blablabla', 'COD_PER_JURIDICA': '37473', 'FECHA_MODIFICACION': None, 'FECHA_INCLUSION': datetime.datetime(2003, 6, 7, 18, 22, 13)},
{'COD_PER_FISICA': None, 'INCLUIDO_POR': 'FU', 'MODIFICADO_POR': 'blablablaA', 'ES_FISICA': 'N', 'COD_PERSONA': '37474', 'NOMBRE': 'blablabla', 'COD_PER_JURIDICA': '37474', 'FECHA_MODIFICACION': datetime.datetime(2003, 9, 2, 12, 14, 19), 'FECHA_INCLUSION': datetime.datetime(2003, 6, 7, 18, 22, 13)}]

Tags: nonedatetimeescodrowporperpersona
1条回答
网友
1楼 · 发布于 2024-10-04 09:29:19

移动此行:

row["last_check"] = last_check_ts

低于你的听写能力。您可以按如下方式复制:

from datetime import datetime
rows = {'a': None, 'b': 'some_str\r', 'c': datetime.utcnow()}
{k: v.replace('\r', '') for k, v in rows.items() if v is not None}

在dict循环之前,您正在向dict添加一个时间戳,因此您调用v.replace('\r', '')对象v的其中一次实际上是datetime。datetime对象确实有一个^{}方法,但您将其视为一个字符串,因此用错误的签名调用它。你知道吗

相关问题 更多 >