有誰知道可以將類對象轉換爲mongodb BSON字符串的Python庫嗎?目前我唯一的解決方案是將類對象轉換爲JSON,然後將JSON轉換爲BSON。將Python類對象實例轉換爲mongodb BSON字符串
2
A
回答
1
將類實例轉換爲字典(如Python dictionary from an object's fields中所述),然後在生成的字典上使用bson.BSON.encode
即可。請注意,__dict__
的值不會包含方法,僅包含屬性。另請注意,可能會出現這種方法無法直接工作的情況。
如果您有需要存儲在MongoDB中的類,您可能還想考慮現有的ORM解決方案,而不是自己編寫代碼。這些列表可以在http://api.mongodb.org/python/current/tools.html
示例中找到:
>>> import bson
>>> class Example(object):
... def __init__(self):
... self.a = 'a'
... self.b = 'b'
... def set_c(self, c):
... self.c = c
...
>>> e = Example()
>>> e
<__main__.Example object at 0x7f9448fa9150>
>>> e.__dict__
{'a': 'a', 'b': 'b'}
>>> e.set_c(123)
>>> e.__dict__
{'a': 'a', 'c': 123, 'b': 'b'}
>>> bson.BSON.encode(e.__dict__)
'\x1e\x00\x00\x00\x02a\x00\x02\x00\x00\x00a\x00\x10c\x00{\x00\x00\x00\x02b\x00\x02\x00\x00\x00b\x00\x00'
>>> bson.BSON.encode(e)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/bson/__init__.py", line 566, in encode
return cls(_dict_to_bson(document, check_keys, uuid_subtype))
TypeError: encoder expected a mapping type but got: <__main__.Example object at 0x7f9448fa9150>
>>>
+0
謝謝你的例子,我決定根據你的建議使用明。 –
+0
我開始在明的開發,但它是一個可怕的ORM,所以我們去了mongokit,很好地建立在pymongo之上 –
相關問題
- 1. 將Bson轉換爲字符串 - MongoDB/Javascript
- 2. 將字符串轉換爲對象Python
- 3. NodeJs將字符串轉換爲BSON對象
- 4. 將類對象轉換爲字符串
- 5. 轉換JSON字符串多個對象爲類實例
- 6. python將實例的字符串轉換爲實例?
- 7. 如何將實例轉換爲Python中的字符串類型?
- 8. 將字符串轉換爲對象實例名稱
- 9. 將實例化對象轉換爲字符串
- 10. 將字符串轉換爲Python中的類對象
- 11. 將字符串轉換爲類型對象 - Python
- 12. 將字符串對象轉換爲python中的列表對象
- 13. 將Bson轉換爲Json對象
- 14. 將字符串轉換爲gson對象
- 15. 將字符串對象轉換爲istringstream
- 16. 將python'type'對象轉換爲字符串
- 17. 將字符串轉換爲JSON對象
- 18. 將字符串轉換爲JS對象
- 19. 將對象轉換爲字符串
- 20. 將字符串轉換爲對象
- 21. VBScript將對象轉換爲字符串?
- 22. 將對象轉換爲字符串(java)
- 23. 將XML對象轉換爲字符串
- 24. 將對象[,]轉換爲字符串
- 25. 將對象轉換爲字符串
- 26. 將字符串轉換爲DateTime對象
- 27. 將字符串轉換爲json對象
- 28. 將字符串轉換爲datetime.time對象
- 29. 將字符串轉換爲NSDate對象
- 30. Jquery將字符串轉換爲對象
您是否在尋找[pymonogo(http://api.mongodb.org/python/current/tutorial.html)可能? – WiredPrairie
我不知道將python類對象轉換爲BSON的pymongo幫助器類嗎? –
你想做什麼? [編碼](http://api.mongodb.org/python/current/api/bson/index.html?highlight=bson#bson.BSON.encode)轉換爲BSON。 – WiredPrairie