社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  tornado

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

user10363084 • 6 年前 • 1955 次点击  

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

{"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
 
1955 次点击  
文章 [ 1 ]  |  最新文章 6 年前
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))