【发布时间】:2021-11-12 07:33:47
【问题描述】:
对于大多数人来说,这可能是一个超级简单的问题,但有困难的学生会很感激一些帮助。 我有一本包含嵌套字典列表的字典。 部分商品丢失或顺序错误。
我正在尝试以特定顺序将其导出为 csv(列表) 我需要比较列表键名中的项目并返回值。如果key不存在返回'N/A'
示例
my_list=["_id", "count", "f_name", "l_name", "number", "country]
my_dict = [{
"_id": 123,
"count": 345,
"account": [
{
"f_name": "Adam",
"l_name": "Adamson",
"number": 1,
"country": "Argentina"
},
{,
"l_name": "Charlson",
"country": "Canada"
},
{
"f_name": "David",
"country": "Denmark",
"number": 3,
"l_name": "Davidson"
},
]
},
{
"_id": 678,
"count": 981,
"account": [
{
"f_name": "Edvin",
"number": 4,
"country": "Equador"
},
]
}]
预期输出
_id | count | f_name | l_name | number | country
------------------------------------------------------
123 | 345 | Adam | Adamson | 1 | Argentina
------------------------------------------------------
123 | 345 | N/A | Charlosn | N/A | Canada
------------------------------------------------------
123 | 345 | David | Davidson | 3 | Denmark
------------------------------------------------------
678 | 981 | Edwin | N/A | 4 | Equador
------------------------------------------------------
任何帮助或建议将不胜感激。
【问题讨论】:
-
我不确定你在问什么,但 python 字典中的键没有排序。如果你想让它表现得像一个列表,你需要使用 OrderedDict 而不是 dict。 docs.python.org/3/library/….
-
到目前为止你做了什么?您还没有显示任何代码供我们调试。
-
@shrewmouse,这在 python3.6 之前是真的。然后order-preserving feature was introduced as an implementation detail。从 3.7 开始,此功能保证适用于常规 dicts。无论如何,尚不清楚它是否与 OP 问题有关。
-
@shrewmouse 对不起,你是对的 - 等一下。回覆。 OrderedDict,我试过了,它返回一个错误:“ValueError:解包的值太多(预期 2)”
-
@buran 的顺序在字典中并不重要。仅重要的是,将值放置在正确的字段中,并且如果键不存在则不要移动
标签: python list dictionary nested