web-dev-qa-db-fra.com

Python - TypeError: l'objet de type 'int64' n'est pas sérialisable JSON

J'ai une trame de données qui stocke le nom du magasin et le nombre de ventes quotidiennes. J'essaye d'insérer ceci dans Salesforce en utilisant le script Python ci-dessous. Cependant, j'obtiens l'erreur suivante:

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

Ci-dessous, il y a la vue de la trame de données.

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

J'utilise le code suivant pour l'insérer dans 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)

Obtention de l'erreur, lorsque la dernière ligne ci-dessus est exécutée. Quelqu'un pourrait-il aider à résoudre ce problème? Merci..

33
dark horse

Cela pourrait être la réponse tardive, mais récemment, j'ai eu la même erreur. Après beaucoup de surf, cette solution m'a aidé.

def myconverter(obj):
        if isinstance(obj, np.integer):
            return int(obj)
        Elif isinstance(obj, np.floating):
            return float(obj)
        Elif isinstance(obj, np.ndarray):
            return obj.tolist()
        Elif isinstance(obj, datetime.datetime):
            return obj.__str__()

Appelez myconverter dans json.dumps() comme ci-dessous. json.dumps('message', default=myconverter)

0
shiva