我正在使用Django 1.8。这是我的看法:
from django.http import JsonResponse
...
query = "SELECT * FROM frontend_chemical WHERE id LIKE %s"
cursor.execute(query, (code + "%",))
data = cursor.fetchall()
print data
return JsonResponse(serializers.serialize('json', data), safe=False)
但这给了我:
AttributeError at /api/1.0/bnf_code: 'tuple' object has no attribute '_meta'
在此行:
return JsonResponse(serializers.serialize('json', data), safe=True)
在控制台中,我可以看到我的数据已返回OK:
[(u'0210', u'Stable angina, acute coronary syndromes, and fibrinolysis'), (u'0211', u'Antifibrinolytic drugs and haemostatics'), (u'0212', u'Lipid-regulating drugs'), (u'0213', u'Local sclerosants')]
任何想法可能出了什么问题吗?
更新:我也一直在尝试使用数据作为字典来获取数据,data = dictfetchall(cursor)
如此处所述。
但是,这只会在相同的地方失败,并带有稍微不同的错误:
AttributeError: 'dict' object has no attribute '_meta'
序列化器仅用于序列化Django模型。要序列化简单的python数据,请使用内置json
模块:
import json
return JsonResponse(json.dumps(data), safe=True)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句