由于大量文件中的无效字符,mongoimport 失败,可能是字符编码问题

mongoimport fails due to invalid character in massive file, possibly an issue with the character encoding

当我运行以下命令时:

mongoimport -v -d ntsb -c data xml_results.json --jsonArray

我收到这个错误:

2020-07-15T22:51:41.267-0400    using write concern: &{majority false 0}
2020-07-15T22:51:41.270-0400    filesize: 68564556 bytes
2020-07-15T22:51:41.270-0400    using fields: 
2020-07-15T22:51:41.270-0400    connected to: mongodb://localhost/
2020-07-15T22:51:41.270-0400    ns: ntsb.data
2020-07-15T22:51:41.271-0400    connected to node type: standalone
2020-07-15T22:51:41.271-0400    Failed: error processing document #1: invalid character '}' looking for beginning of object key string
2020-07-15T22:51:41.271-0400    0 document(s) imported successfully. 0 document(s) failed to import.

我已经尝试了this file中的所有解决方案,但没有任何效果。我的 JSON 文件大小为 60 MB,因此很难通过它找到括号问题。我相信这可能是 UTF-8 格式的问题?我使用从互联网上下载的 XML 文件,并使用 Python 脚本将其转换为 JSON。当我尝试 --jsonArray 标志时,它给出了同样的错误。有任何想法吗?谢谢!

原来在这个庞大的文件中有一些不必要的逗号。我能够使用内置于 JSON 解析中的 Python 跳转到有错误的行并手动删除它们。据我所知,无效字符与 } 无关,而是与导致它在右括号之前期望另一个值的逗号有关。

解决后还是无法导入成功,因为现在文件太大了。解决这个问题的技巧是用数组括号 [] 包围所有 JSON 对象并使用以下命令:mongoimport -v -d ntsb -c data xml_results.json --batchSize 1 --jsonArray

几秒钟后数据成功导入Mongo。