首页 > 解决方案 > 从 Django 中的 JSONField 访问嵌套数据

问题描述

我有以下模型:

class BaseTransaction(models.Model):
    """Model to store JSON data"""
    name = models.CharField(max_length=255)
    json_data = JSONField(null=True)

如果我使用以下数据创建一个实例:

 base_transaction = models.BaseTransaction.objects.create(
            name="Test Transaction",
            json_data={{"sales": 3.24, "date": "2020-06-05"},
                       {"sales": 5.50, "date": "2020-06-04"},
                       {"sales": 256.53, "date": "2020-06-02"}}
        )

我如何在没有密钥的情况下访问第二行数据?或者这是 JSON 的错误格式?我使用这种格式是因为原始数据来自 CSV,这就是它转换为 JSON 的方式。

标签: pythondjangodjango-rest-framework

解决方案


不,上面的结构不是JSON格式的。您可以随时验证是否JSON使用JSON Formatter & Validator

您可能希望根据 的规则进行重组JSON,如果可以的话,您可以手动进行重组。格式化后,您无需使用 for 循环和计数器JSON即可访问第二行,例如keys

counter = 0    
for (key in obj) {
    counter+=1
    if (counter == 2): 
        # Do anything 
    else:
       print("Key: " + key)
       print("Value: " + obj[key])
}

推荐阅读