![](/img/trans.png)
[英]How to get a single value from a pymongo query of a mongodb in python?
[英]How do I get json output from a date value from mongodb using pymongo
我定期收集股市數據,並使用pymongo將其存儲在mongodb中,如下所示:
db.apple_stock.insert({'time': datetime.datetime.utcnow(), 'price': price})
現在我想要JSON格式的輸出,以便可以使用highstocks:
[
[1403546401372, 343],
[1403560801637, 454],
[1403575202199, 345],
[1403618402379, 345]
]
Tornado在服務器上運行,並且“ mysite.com/api/stock.json”應在JSON文件中提供上述數據。
所以,我查詢我的數據庫,並使用pymongo的json_util轉儲到json中:
from bson.json_util import dumps
dumps(query_result)
我得到的輸出為:
[
[{"$date": 1403546401372}, 343],
[{"$date": 1403560801637}, 454],
[{"$date": 1403575202199}, 353]]
]
那么,如何將第一項從字典更改為僅包含值部分的日期呢? 有可用的功能嗎?還是我必須遍歷列表並自己進行轉換?
其次,如果我真的必須迭代該列表,那么在MongoDB中存儲以便直接獲得所需輸出的正確方法是什么?
pymongo驅動程序實用程序中有意提供dumps
功能,以提供所謂的擴展JSON格式 。
這樣做的目的是在JSON本身不了解嚴格的“類型”(例如BSON格式需要什么以及MongoDB本身使用什么)的情況下提供“類型保真度”。 它允許將JSON傳輸到“可能”能夠理解所呈現“類型”的客戶端,例如“ $ date”或“ $ oid”,然后使用這些鍵將JSON“反序列化”為特定的“語言規范中的“類型”。
在大多數語言實現中,使用標准形式的JSON編碼會發現“否則”:
“自定義序列化”的最佳情況是迭代返回的結構並自己實現類型的序列化。 或僅將dumps
形式與JSON的“解碼”一起使用,然后刪除標識“類型”的那些“鍵”。
或者,當然也可以在特殊庫之外使用基本的JSON編碼,並獲得結果。
導致這種情況的正確BSON日期類型是在MongoDB中存儲的“正確”方式。 庫功能的用法是“根據設計”。 但是,最終使用方法實際上取決於您自己。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.