編寫生成JSON的代碼。 JSON的最後一節有一個「」被終止,所以在我的代碼有:django - queryset.last()不返回正確的順序/最後一條記錄
- 定義查詢集檢索數據庫字段的不同值:
databases_in_workload = DatabaseObjectsWorkload.objects.filter(workload=migration.workload_id).values_list('database_object__database', flat=True).distinct()
- 然後我循環它:
for database_wk in databases_in_workload:
... do something
if not (database_wk == databases_in_workload.last()):
job_json_string = job_json_string + '} ],'
else:
job_json_string = job_json_string + '} ]'
我想最後一個記錄被一個方括號終止,前面用逗號。相反,情況恰恰相反。
我也看了一下數據庫表的內容。我對「database_wk」的值是user02(主鍵值較低的記錄)和user01(DB中pk值較高的記錄)。順序(如果user01是第一個或最後一個)真的沒有關係,只要最後一條記錄被last()正確標識 - 所以如果在查詢集迭代中有user02,user01,我期望last()返回用戶01。但是 - 這不能正常工作。 奇怪的是,如果在數據庫中(Postgres)的順序發生了變化(首先有user01,然後user02按主鍵值排序),那麼上面的「if」代碼有效,但在我的情況下,last()似乎返回第一個記錄,而不是最後一個。就好像數據庫中有一個訂單,查詢集中有另一個訂單,而last()正在採用數據庫訂單......有人遇到/解決過這個問題嗎?另外 - 用於識別查詢集中最後一條記錄(除last())之外的其他任何方法都可以幫助我。提前謝謝了!
生成JSON用手嘗試僅僅是一個完整的跆拳道 - 有一個'json'包,知道如何序列Python來JSON的STDLIB。 –