python - 如何在 Python 中过滤对象数组?
问题描述
我有一个名为 project 的集合,这个集合包含不同的文档,每个文档都包含一个名为 data 的对象数组。
我希望能够通过 projectAlias 过滤数据(Excel 文件)并使用 pymongon 和 pandas 在 SQL(列和行)中构造这个文件
例如
解决方案
这里没有代码,所以我不得不做一些猜测:
- 我将假设您的所有数据都已经在它自己的数组中,从它最初进入的任何形式中提取。如果需要从多个文档中收集,我假设已经完成
- 我假设每个对象都有一个带有字符串值的键“projectAlias”
- 我假设已经处理了没有“projectAlias”键的任何对象
- 为了懒惰,我假设您想按字典顺序对数据进行排序(例如“a”<“b”,“A”<“a”)
像这样的东西可能有用:
#Made up function for first and third assumptions
data_array = collect_data(documents)
data_array.sort(key=lambda obj: obj["projectAlias"])
#Or, to create a new array with sorted data
sorted_data = sorted(data_array, key=lambda obj: obj["projectAlias"])
python 内置排序函数的键 arg 采用某种其他函数,并在对该数组的结果进行排序之前在数组的每个元素上运行它。然后因为 python 很有帮助,它预先定义了用于排序的字符串比较,将大写字母放在第一位,然后是英文字母的小写字母。当您进入口音、变音符号和其他变体时,情况就会发生变化。我在那里没有见识。
如果您的数据需要其他排序,您可能希望为 key 定义一个不同的 lambda 函数,以产生更适合您所需排序的输出。另一个可能是值的长度:
#Made up function for first and third assumptions
data_array = collect_data(documents)
data_array.sort(key=lambda obj: len(obj["projectAlias"]))
#Or, to create a new array with sorted data
sorted_data = sorted(data_array, key=lambda obj: len(obj["projectAlias"]))
如果您想了解更多信息,python.org 的 wiki 中的“关键功能”部分可能会很有用
推荐阅读
- java - mockMvc .contentType(MediaType.APPLICATION_JSON) 的目的是什么?
- javascript - KeyboardEvent:按下“Shift”时如何获取数字键代码?
- nlog - 带有 ${oneexception} 的 NLog 布局不显示文字文本
- fonts - Vuepress 添加字体
- linux - linux和openai健身房问题
- c# - 删除属性名称并改用该值
- php - 如果 SQL 表包含行,则插入不同的内容
- python-3.x - 我如何在 Arch linux 上的 alpine chroot 上安装 psutil?
- postgresql - 从 debian 和 ubuntu 客户端连接时 Postgres“连接超时”,但从 Windows 可以正常
- c# - 我不知道为什么我的小巧玲珑 Multi-Mapper 给出了一个例外