[英]How to format a MySQL query into JSON using webpy?
我正在嘗試使用 webpy 查詢 MySQL 數據庫。 從 SQL 查詢中,我得到以下信息。
<Storage {'title': u'Learn web.py', 'done': 0, 'id': 0L, 'mytime': datetime.datetime(2011, 5, 30, 10, 53, 9)}>
我嘗試使用json.dumps(data)
將數據序列化為 JSON 格式,但是我收到一條錯誤消息,表明數據不可序列化。
我可能可以遍歷每個鍵值對並將其放入另一個字典中,但這似乎工作量太大。
關於最佳方法的任何建議?
編輯:我認為我的問題是因為我的數據中有datetime.datetime(2011, 5, 30, 10, 53, 9)
。 我從數據庫中刪除了mytime
列,一切正常。 有沒有辦法將mytime
列包含到 JSON 字符串中?
您可以擴展 json.JSONEncoder 來處理日期:
我沒有使用存儲 object 作為參數對此進行測試,但是正如您所說,當查詢中沒有日期時它可以工作,我認為這應該可以工作。 (有關擴展編碼器對象的信息,請參閱 json 模塊文檔)。
import datetime, json
class ExtendedEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, datetime.datetime):
# If it's a date, convert to a string
# Replace this with whatever your preferred date format is
return o.strftime("%Y-%m-%d %H:%M:%S")
# Defer to the superclass method
return json.JSONEncoder(self, o)
那么,如果“結果”是你的存儲 object
json_string = json.dumps(result, cls=ExtendedEncoder)
嘗試將其轉換為 UNIX 時間戳:
import time
result.mytime = time.mktime(result.mytime.utctimetuple())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.