我有一个数据框,用于存储商店名称和每日销售量。我正尝试使用下面的 Python 脚本将其插入 Salesforce。
但是,我收到以下错误:
TypeError: Object of type 'int64' is not JSON serializable
下面是数据框的视图。
Storename,Count Store A,10 Store B,12 Store C,5
我使用以下代码将其插入到 Salesforce。
update_list = [] for i in range(len(store)): update_data = { 'name': store['entity_name'].iloc[i], 'count__c': store['count'].iloc[i] } update_list.append(update_data) sf_data_cursor = sf_datapull.salesforce_login() sf_data_cursor.bulk.Account.update(update_list)
当执行上面最后一行时出现错误。
我该如何修复这个问题?
这个错误是因为 pandas 数据框中的 int64 类型不能被直接序列化为 JSON。Salesforce API 期待标准的 Python 数据类型,而 int64 不是标准类型。因此,你可以通过将 int64 数据类型转换为标准的 Python int 类型来解决问题。
pandas
int64
int
你可以在插入 Salesforce 数据之前,使用 .astype(int) 方法将 count 列转换为标准的 Python 整型数据。
.astype(int)
count
下面是修改后的代码:
update_list = [] # 将 count 列转换为标准 Python int 类型 store['count'] = store['count'].astype(int) for i in range(len(store)): update_data = { 'name': store['entity_name'].iloc[i], 'count__c': store['count'].iloc[i] } update_list.append(update_data) sf_data_cursor = sf_datapull.salesforce_login() sf_data_cursor.bulk.Account.update(update_list)
这样你可以避免 int64 类型无法被 JSON 序列化的问题。如果问题仍然存在,可以进一步检查 Salesforce 端是否有其他字段要求特殊格式。