我是MongoDB和pymongo的新手(今天)。我在尝试遍历字典并将查询传递给collection.find()
时遇到了麻烦。 a079-um-retail
可以正常工作,而c080-wp-retail
可以产生以下错误。
我尝试过ast.literal_eval,但似乎尝试在找到冒号的地方分解使用DBRef的值。
经过不懈的搜索,我没有遇到任何解决方法。
有人有什么想法吗?
谢谢
代码
for name, qstring in query_strings.items():
c = httpsessions_collection.find(ast.literal_eval(qstring)).count()
错误
Traceback (most recent call last):
File "mongo.py", line 144, in <module>
c = httpsessions_collection.find(ast.literal_eval(qstring)).count()
File "/Users/paul/anaconda/lib/python3.5/ast.py", line 84, in literal_eval
return _convert(node_or_string)
File "/Users/paul/anaconda/lib/python3.5/ast.py", line 62, in _convert
in zip(node.keys, node.values))
File "/Users/paul/anaconda/lib/python3.5/ast.py", line 61, in <genexpr>
return dict((_convert(k), _convert(v)) for k, v
File "/Users/paul/anaconda/lib/python3.5/ast.py", line 83, in _convert
raise ValueError('malformed node or string: ' + repr(node))
ValueError: malformed node or string: <_ast.Call object at 0x10587abe0>
数据子集
query_strings =
{
"a079-um-retail":"{'destinationIP':'10.0.0.1'}",
"c080-wp-retail":"{'parent':DBRef('users',ObjectId('5b59ee1226a0710023533a57'))}"
}