簡體   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