python - 从 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 的方式。
解决方案
不,上面的结构不是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])
}
推荐阅读
- hibernate - 标准生成器和子选择查询来自
- .net-5 - 在 .NET 5+ 中通过 Microsoft.Identity.Web 使用身份验证时,ForwardDefaultSelector 应该返回哪些可能的字符串值?
- r - 按几列分组并打印
- java - Exoplayer 2.16.0 NullPointerException 在 com.google.android.exoplayer2.util.Assertions.checkNotNull 创建播放列表时
- reactjs - 对 Django 后端的 ReactJS Api 获取请求返回“strict-origin-when-cross-origin”错误
- php - PHP多维数组 - 基于元素值未设置
- rust - 枚举之间一对一映射的穷举性检查
- azure-logic-apps - 如何将数组从 ADF 的 Web Activity 发送到 Logic App Webhook?
- python - 试图在熊猫中使用变换,但它给了我一些错误
- database - 用于 url 和相关关键字的 DynamoDB 数据模型