Python 错误:TypeError:'Timestamp' 类型的对象不是 JSON 可序列化的'

Posted

技术标签:

【中文标题】Python 错误:TypeError:\'Timestamp\' 类型的对象不是 JSON 可序列化的\'【英文标题】:Python error : TypeError: Object of type 'Timestamp' is not JSON serializable'Python 错误:TypeError:'Timestamp' 类型的对象不是 JSON 可序列化的' 【发布时间】:2018-10-28 11:54:19 【问题描述】:

我有一个 Dataframe,其时间戳列的类型为“datetime64[ns]”。当我尝试将其插入 Salesforce 平台时,会收到错误“TypeError: Object of type 'Timestamp' is not JSON serializable”。我如何更改此时间戳列以使其正确更新。下面给出的是 Dataframe 的视图。

Id,Name,Date,Type
1,ProdA,2018-05-18 04:45:08,S
1,ProdB,2018-05-18 02:15:00,S
1,ProdC,2018-05-16 10:20:00,S

这 4 列中每一列的数据类型:

Id                                     object
Name                                   object
Date                           datetime64[ns]
Type                                   object
dtype: object

任何人都可以在这方面提供帮助。谢谢。

【问题讨论】:

【参考方案1】:

如果您收到错误TimeStamp has no attribute as "astype(str)",您可以尝试,例如str(timeseries.index[0])。这会将时间戳转换为可以序列化的字符串。

【讨论】:

【参考方案2】:

您可以尝试将日期时间转换为字符串:

df['Date'] = df['Date'].astype(str)

或者:

df['Date'] = df['Date'].dt.strftime('%Y-%m-%d %H:%M:%S')

print (df.dtypes)
Id      object
Name    object
Date    object
Type    object
dtype: object

【讨论】:

你将如何对框架中的所有日期列执行此操作?

以上是关于Python 错误:TypeError:'Timestamp' 类型的对象不是 JSON 可序列化的'的主要内容,如果未能解决你的问题,请参考以下文章

python fbprophet错误,TypeError:'module'对象不可调用

“TypeError:'WebElement'对象不可迭代”错误代码python爬取

Python:Concurrent.Futures 错误 [TypeError:'NoneType' 对象不可调用]

python TypeError: must be str, not bytes错误

代码错误Python:TypeError:/:'set'和'int'不支持的操作数类型

Python 错误:TypeError:'Timestamp' 类型的对象不是 JSON 可序列化的'