python - 如何根据密钥对类型 python 对我的 json 数据进行排序
问题描述
问题:
我只是想找到一种方法来按 ['logonTime'] 对我的 json 数据进行排序。
这是 json 的简化形式:
{'results':
[{'userName': 'PDD1\\Samantha',
'logonTime': 1615222801000.0,
'deviceId': 892}]
}
我希望所有条目都按 ['logonTime'] 排序,但我还没有找到正确的方法。我认为这对我来说很难的原因是因为似乎有很多不同的方法可以做到这一点。
我在此处尝试了此链接中的方法Sort a JSON using Pythoncannot assign to lambda
但是当我尝试自己编写代码时出现错误消息。
这是通常的代码:
#client file that handles the api get request. py
def get_logged_on_users(self):
resp = self.api_get_request(self.NINJA_API_GET_LOGGED_ON_USERS)
if not resp.status_code == self.STATUS_OK:
return False
return resp.json()
#main file.py
napi = ninjarmm_api.client(ninjaapi, ninjasak, iseu=False, debug=False)
napialert = napi.get_disks()
napilousers = napi.get_logged_on_users()
napidevices = napi.get_devices()
print(napilousers)
这是我尝试从之前看到的链接中对数据进行排序的糟糕尝试:
sorted_napilousers = dict(napilousers)
sorted_napilousers['results'] = sorted(napilousers)['logonTime'], key=lambda x : x['logonTime'], reverse=True)
print(sorted_napilousers)
#this results in "cannot assign to lambda" when ran
我可以尝试任何想法或建议吗?我觉得这里的排序选项很简单,或者可能是 json.dumps 选项,但我见过很多选项,这让我有点困惑。
解决方案
这是您的代码的修复程序,请尝试:
napilousers = {'results':
[{'userName': 'PDD1\\Samantha',
'logonTime': 111111.0,
'deviceId': 892},
{'userName': 'PDD1\\Samantha',
'logonTime': 333333.0,
'deviceId': 892},{'userName': 'PDD1\\Samantha',
'logonTime': 222222.0,
'deviceId': 892}]
}
sorted_napilousers = dict(napilousers)
sorted_napilousers['results'] = sorted(napilousers['results'], key=lambda x : x['logonTime'], reverse=True)
print(sorted_napilousers)
你的尝试并不可怕,你只是犯了一些小错误。
推荐阅读
- css - Next.JS + AMP CSS
- java - 在不使用 Aspects 的情况下跟踪 Spring 方法调用
- android - 当我尝试从加密的 sqlite db 获取数据时出现异常
- gensim - Gensim Doc2Vec infer_vector on unseen words 根据这些单词中的字符而有所不同
- python - 调度 Python 以自动化静态推文
- r - 是否有任何选项可以在 R 中自定义子图轴和标题?
- vue.js - 如何在 Vuetify 中覆盖 v-btn 活动类?
- python - 在 python 中使用 sys settrace 和 pytest
- html - BeautifulSoup [ ] 不包含链接
- php - 实际上是否可以通过 .CSV 文件将文件(图像)从您的 PC 上传到数据库?