我正在使用python将数据从oracle迁移到Mongo DB,而迁移我能够使用clob.read()读取clob对象,但是在插入mongo DB时它会抛出一个例外
追踪(最近的电话 last):db.test234.insert(i)中的文件" test.py",第39行 文件" C:\ Python27 \ lib \ sitepackages \ pymongo \ collection.py",409行, 在插入gen(),check_keys,self.uuid_subtype,client)中 InvalidStringData:文档中的字符串必须是有效的UTF-8: '恶意攻击驱动程序\ r \ n
----------------------- \ r \ n \ r \ n
这是一项努力(恶意攻击驱动程序)包含的包装程序,提供测试脚本基础结构来运行不同的攻击工具,漏洞扫描程序,黑客工具等。目标是在所有可以从远程运行攻击/测试的协议中提供通用API。
'REVIEW_DESCRIPTION', type 'cx_Oracle.CLOB', -1, 4000, 0, 0, 0
检查了很多论坛和堆栈溢出,无法找到问题的确切解决方案,尝试过编码clob数据等选项仍然抛出同样的异常
答案 0 :(得分:0)
您需要将数据提供给UTF8,因此您需要知道Oracle DB中使用的编码。首先解码,然后编码为UTF8。例如,如果数据是在Oracle DB中的latin1
中编写的:
unicode_representation = oracle_representation.decode('latin1')
utf8_representation = unicode_representation.encode('utf8')
您现在应该可以存储utf8_representation
。