【发布时间】:2014-03-09 17:16:07
【问题描述】:
我有以下代码:
import flask as fk
import MySQLdb
import JSONEncoder
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
app = fk.Flask(__name__)
app.json_encoder = SpecializedJSONEncoder
app.debug = True
@app.route("/")
def home():
return "Hello world"
@app.route("/temp")
def temp():
db = MySQLdb.connect("localhost", "root", "","test")
cur = db.cursor()
query = "SELECT DATE(DTM), POM, ROUND(MIN(TMP),1) FROM dados_meteo WHERE POM = %s AND DATE(DTM) >= %s AND DATE(DTM) <= %s"
param = ("Faro", "2013-12-01", "2013-12-05")
cur.execute(query, param)
data = cur.fetchall()
return data.json_encoder()
if __name__ == "__main__":
app.run()
返回的错误是:ImportError: No module named JSONEncoder
【问题讨论】:
-
cur.fetchall() 返回一个元组列表。
-
我试图获得可以在 Angular 客户端上使用的 JSON 结果。有可能吗?
-
您无法更改 fetchall 返回的内容,但应该可以将其解析为适当的格式。
-
@JayanthKoushik 我现在使用 simplejson 进行序列化。但我收到以下错误 TypeError: datetime.date(2013, 12, 1) is not JSON serializable。你能帮帮我吗?