无法在djang中打印json对象的值

2024-04-25 22:12:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在ajax\u数据变量中有这个json对象

{
    "columns[0][data]": "0", 
    "columns[1][name]": "", 
    "columns[5][searchable]": "true", 
    "columns[5][name]": "", 
    "columns[4][search][regex]": "false", 
    "order[0][dir]": "asc", 
    "length": "10", 
}

我已经用json.loads文件()功能类似。你知道吗

ajax_data = json.loads(ajax_data)

如果“order[0][dir]”和“columns[0][data]”,我想获取值,但是如果我使用

ajax_data['order'][0]['dir]

其给出错误:

KeyError at /admin/help
'order'

但同样的代码可以工作,如果我访问它的长度键,然后它的工作。你知道吗


Tags: columns数据对象namejsonfalsetruesearch
2条回答

这是因为length是该json对象中的键,order不是。关键字名称是引号中的整个字符串:columns[0][data]order[0][dir],等等

这些是不寻常的密钥名称,但完全有效。你知道吗

您使用的键实际上不是一种好的实现方式。你知道吗

{
    "columns[0][data]": "0", 
    "columns[1][name]": "", 
    "columns[5][searchable]": "true", 
    "columns[5][name]": "", 
    "columns[4][search][regex]": "false", 
    "order[0][dir]": "asc", 
    "length": "10", 
}

你不应该这样做

{
    "columns": [
        {"data": "0", "name": "", "searchable": "true", "name": "", "search": {
            "regex": "false"}
        },
        {"data": "0", "name": "", "searchable": "true", "name": ""," search": {
            "regex": "false"}},
        {"data": "0", "name": "", "searchable": "true", "name": "", "search": {
            "regex": "false"}},
        {"data": "0", "name": "", "searchable": "true", "name": "", "search": {
            "regex": "false"}},
        {"data": "0", "name": "", "searchable": "true", "name": "", "search": {
            "regex": "false"}},
        {"data": "0", "name": "", "searchable": "true", "name": "", "search": {
            "regex": "false"}},
    ],
    "order": [
        {"dir": "asc"}
    ],
    "length": "10"
}

在这种情况下,ajax_data['order'][0]['dir]将产生值“asc”

对于您当前的实现,键是“order[0][dir]”

那是我的目标

ajax_data["order[0][dir]"]

希望你能理解这个问题。你知道吗

在处理api时,json的结构非常重要。尝试重新构造json,这对将来也有帮助。你知道吗

相关问题 更多 >