繁体   English   中英

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

[英]can't print the value of json object in django

我在ajax_data变量中有这个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'

但是,如果我为长度键访问它,则相同的代码也可以工作。

您使用的密钥实际上并不是一种很好的实现方式。

{
    "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,这也会对将来有所帮助。

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

这些是不寻常的键名,但完全有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM