Pymongo bson.errors.InvalidDocument:从文件读取时无法编码对象



我有一个csv文件,其中包含标题行和 100k 个条目。

我在 IDE 中使用pythonpycharm并将conda用作 python 解释器。condapymongo-3.4.0mongo-driver.

我解析我的csv文件并将其另存为磁盘上的jsonn个文件,然后循环访问json文件以将json对象插入mongo数据库中。

JSON 如下所示:

{
a1 : {'name': 702104534, type='Single' }
a2 : {'name': 702104535, type='Single' }
a3 : {'name': 702104536, type='Married' }
}

蟒蛇代码:

import pymongo
import pickle
with open('my_json_file.json', 'rb') as in_file:
person_json = pickle.load(in_file)
conn = pymongo.MonogClient('localhost','27017')
db = conn['db']
coll = db['coll']
persons = person_json.keys()
for person in persons:
coll.insert_one(person_json[person])

通过以下错误:

Traceback (most recent call last):
File "C:/PyCharmWorkSpace/LCR/json2mongo.py", line 109, in <module>
data2mongo()
File "C:/PyCharmWorkSpace/LCR/json2mongo.py", line 89, in data2mongo
coll.insert_one(json_str)
File "C:Anaconda3libsite-packagespymongocollection.py", line 657, in insert_one
bypass_doc_val=bypass_document_validation),
File "C:Anaconda3libsite-packagespymongocollection.py", line 562, in _insert
check_keys, manipulate, write_concern, op_id, bypass_doc_val)
File "C:Anaconda3libsite-packagespymongocollection.py", line 543, in _insert_one
check_keys=check_keys)
File "C:Anaconda3libsite-packagespymongopool.py", line 424, in command
self._raise_connection_failure(error)
File "C:Anaconda3libsite-packagespymongopool.py", line 552, in _raise_connection_failure
raise error
File "C:Anaconda3libsite-packagespymongopool.py", line 419, in command
collation=collation)
File "C:Anaconda3libsite-packagespymongonetwork.py", line 94, in command
None, codec_options, check_keys)
bson.errors.InvalidDocument: Cannot encode object: 702104534

但是,如果 json 字符串是一个变量,则同样有效

蟒蛇代码:

import pymongo
conn = pymongo.MonogClient('localhost','27017')
db = conn['db']
coll = db['coll']
person = {'name': 702104534, 'type'='Single' }
coll.insert_one(person)

感谢您的帮助。

当动态生成或从基于磁盘的文件读取json时,当使用insertinsert_oneinsert_many任一插入方法将json字符串插入mongodb时,pymongo似乎存在一些运行时类型转换兼容性问题。

我能够通过关联标准 python 类型转换将json对象插入到mongodb

相关内容

最新更新