Py学习  »  tornado

在Tornado处理程序中对json-util-dumps中的项排序

user10363084 • 5 年前 • 1889 次点击  

我想输出如下(在我的脚本排序)。

{"data": [
    { "cid": "CG138712",
      "mac": "24-A4-3C-F6-51-21",
      "category": "CPE- E",
      "last_seen": "2017-12-11 12:42:10",                                                 
       "cpe-o": {"cid": "CS247314",
                 "mac":"80-2A-A8-7E-1D-8E",
                 "category": "CPE-O", 
                 "last_seen": "2018-05-14 15:28:42", 
               }
    }]
}

但我的代码保持了这样的输出。

{"data": [
        { "cid": "CG138712",
          "category": "CPE- E",                                                 
           "cpe-o": {"cid": "CS247314",
                     "last_seen": "2018-05-14 15:28:42", 
                     "category": "CPE-O", 
                     "mac":"80-2A-A8-7E-1D-8E"   
                   }
            "mac": "24-A4-3C-F6-51-21",
            "last_seen": "2017-12-11 12:42:10",
        }]
    }

这就是我在脚本中实现的方法!

    cpeo_dict = dict(......)  
    doc = {"cid": document['cid'],"mac": document['mac'],"category": document['category'],"last_seen": document['last_seen'].strftime("%Y-%m-%d %H:%M:%S"),"cpe-o": cpeo_dict}
   docs_uplink.append(doc)
   dumped = json_util.dumps(dict(data=docs_uplink))

我找不到如何在json_util.dumps函数中添加参数,只找到了json.dumps的sort和ordereddict。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46108
 
1889 次点击  
文章 [ 1 ]  |  最新文章 5 年前
xyres
Reply   •   1 楼
xyres    6 年前

python字典不维护顺序。有一个特殊的类可以用来保存dicts中的顺序- collections.OrderedDict . 而不是使用 dict ,您需要使用 OrderedDict .

例子:

from collections import OrderedDict

doc = OrderedDict([
    ('cid', document['cid']),
    ('mac', document['mac']),
    ('category', document['category']),
    # ... other keys ...
])

docs_uplink.append(doc)
dumped = json_util.dumps(dict(data=docs_uplink))