Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

452
Views
Python - TypeError: el objeto de tipo 'int64' no es JSON serializable

Tengo un marco de datos que almacena el nombre de la tienda y el recuento de ventas diarias. Estoy tratando de insertar esto en Salesforce usando el script de Python a continuación.

Sin embargo, me sale el siguiente error:

 TypeError: Object of type 'int64' is not JSON serializable

A continuación, se muestra la vista del marco de datos.

 Storename,Count Store A,10 Store B,12 Store C,5

Uso el siguiente código para insertarlo en 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)

Recibo el error cuando se ejecuta la última línea anterior.

¿Cómo puedo solucionar esto?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

json no reconoce los tipos de datos NumPy. Convierta el número a un Python int antes de serializar el objeto:

 'count__c': int(store['count'].iloc[i])
over 4 years ago · Santiago Trujillo Report

0

Puede definir su propio codificador para resolver este problema.

 import json import numpy as np class NpEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, np.integer): return int(obj) if isinstance(obj, np.floating): return float(obj) if isinstance(obj, np.ndarray): return obj.tolist() return super(NpEncoder, self).default(obj) # Your codes .... json.dumps(data, cls=NpEncoder)
over 4 years ago · Santiago Trujillo Report

0

Lanzaré mi respuesta al anillo como una versión un poco más estable de la excelente solución de @Jie Yang.

Mi solución

numpyencoder y su repositorio .

 from numpyencoder import NumpyEncoder numpy_data = np.array([0, 1, 2, 3]) with open(json_file, 'w') as file: json.dump(numpy_data, file, indent=4, sort_keys=True, separators=(', ', ': '), ensure_ascii=False, cls=NumpyEncoder)

La caida

Si profundiza en el código de hmallen en el archivo numpyencoder/numpyencoder.py , verá que es muy similar a la respuesta de @Jie Yang:

 class NumpyEncoder(json.JSONEncoder): """ Custom encoder for numpy data types """ def default(self, obj): if isinstance(obj, (np.int_, np.intc, np.intp, np.int8, np.int16, np.int32, np.int64, np.uint8, np.uint16, np.uint32, np.uint64)): return int(obj) elif isinstance(obj, (np.float_, np.float16, np.float32, np.float64)): return float(obj) elif isinstance(obj, (np.complex_, np.complex64, np.complex128)): return {'real': obj.real, 'imag': obj.imag} elif isinstance(obj, (np.ndarray,)): return obj.tolist() elif isinstance(obj, (np.bool_)): return bool(obj) elif isinstance(obj, (np.void)): return None return json.JSONEncoder.default(self, obj)
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!