訪問Python字典比使用setattr容易得多。 你有兩種選擇。您可以創建一個ID爲Keys的字典或簡單的列表。
import json
data = {}
camera_logs = CameraLog.objects.filter(camera_id=camera_id)
for log in camera_logs :
data[log.id] = log.celsius
return Response(json.dumps(data))
在上面的解決方案中,您將擁有一個ID爲CameraLog的字典作爲KEY,並且值爲您將擁有攝氏度。基本上,你的JSON看起來就像這樣:
{
1: 20,
2: 19,
3: 21
}
第二種方法是發送值的簡單列表,但我猜你想有信息,有什麼相機什麼溫度
import json
data = []
camera_logs = CameraLog.objects.filter(camera_id=camera_id)
for log in camera_logs :
data.append(log.celsius)
return Response(json.dumps(data))
編輯答案
如果你想有類型的字典列表,讓這樣的事情:
import json
data = []
camera_logs = CameraLog.objects.filter(camera_id=camera_id)
for log in camera_logs :
data.append({
'camera_id': log.id,
'celsius': log.celsius,
'fahrenheit': log.fahrenheit
})
return Response(json.dumps(data))
非常有幫助。我發現我並不完全偏離軌道。現在,我如何將'log'的多個屬性添加到'data'對象? – dcolumbus
我得到'Decimal'類型的對象不是JSON serializable'作爲迴應 – dcolumbus
我已經更新了我的答案。如果你有十進制不是JSON序列化你必須使用例如simplejson - 這與十進制很好。因爲python json有十進制字段的麻煩。比你可以簡單地將'simplejson導入爲json'並像上面那樣使用它 – sebb