2014-12-20 19 views
5

Sto migrando i dati da Oracle a Mongo DB utilizzando python, durante la migrazione sono in grado di leggere l'oggetto clob utilizzando clob.read(), ma durante l'inserimento in mongo DB genera un'eccezione dicendoPython MongoDB clob exception

Traceback (chiamata più recente scorso): File "test.py", la linea 39, in db.test234.insert (i) file "C: \ Python27 \ lib \ sitepackages \ pymongo \ collection.py ", la linea 409, in inserto gen(), check_keys, self.uuid_subtype, client)
InvalidStringData: stringhe nei documenti deve essere valido UTF-8: 'dannoso Attacco conducente \ r \ n
----------------------- \ r \ n \ r \ n

Questo è uno sforzo per (driver attacco dannoso) comprendente di routine wrapper per fornire l'infrastruttura di script di test per eseguire diversi strumenti di attacco, scanner di vulnerabilità, strumenti di hacker come. L'obiettivo è fornire API comuni su tutti i protocolli che possono eseguire l'attacco/test da remoto.

'REVIEW_DESCRIPTION', type 'cx_Oracle.CLOB', -1, 4000, 0, 0, 0 

controllato molti forum e overflow dello stack, in grado di trovare la soluzione esatta per il rilascio, opzioni come la codifica dei dati clob che ancora gettata stessa eccezione

+0

Hai provato a codificare i dati in utf-8 utilizzando pythom, quindi inseriscilo nel mongodb – The6thSense

+0

Prova a creare un esempio minimo e pubblica tutte le informazioni (stringa da inserire, codice Python completo, versione di MongoDB, ecc.). – lumbric

risposta

0

È necessario per ottenere i dati a UTF8 provato, così è necessario sapere quale codifica viene utilizzata nel DB Oracle. Prima decodifica, quindi codifica in UTF8. Ad esempio, se i dati vengono scritti in latin1 in Oracle DB:

unicode_representation = oracle_representation.decode('latin1') 
utf8_representation = unicode_representation.encode('utf8') 

Si dovrebbe essere in grado di memorizzare utf8_representation ora.