python - Python 3.5+ 的 OrderedDict move_to_end 替代方案
问题描述
我有一个带有 n 个参数的字典:
print(table)
{
"Parameters":{
"erVersion":"1.0",
"A":"a",
"rVersion":"1.0",
"B":"b",
"C":"c",
"Ur":"legislator",
"RecordSize":"13",
"classification":"json",
"compressionType":"none"
}
}
我想将参数 A、B 和 C 放在参数的顶部。我尝试使用以下代码执行此操作:
table['Parameters'].move_to_end("C", last=False)
table['Parameters'].move_to_end("B", last=False)
table['Parameters'].move_to_end("A", last=False)
然而,这在 Python 3.5+ 中不起作用(参考:https ://stackoverflow.com/a/16664932/7615751 )
使用较新版本的 Python 是否有替代方案?如果另一种方法更好,我也会很感激使用它的建议。
我不想通过定义一个固定的参数顺序来解决这个问题,因为我有很多这样的表,它们的参数数量不同(尽管它们总是有 A、B、C 参数)。
解决方案
让我们假设
data = {
"Parameters":{
"erVersion":"1.0",
"A":"a",
"rVersion":"1.0",
"B":"b",
"C":"c",
"Ur":"legislator",
"RecordSize":"13",
"classification":"json",
"compressionType":"none"
}
}
你似乎在做table = OrderedDict(data)
,这将只为关键的“参数”创建所述对象。它的值,即内部字典,将保持正常dict
,不支持move_to_end()
. 你可以解决这个问题
table['Parameters'] = OrderedDict(table['Parameters'])
推荐阅读
- php - 当存在三个或更多时删除 html 换行符
- javascript - 如何将 D3js 条形图比赛导出到 MP4/视频
- r - 使用 ggplot2 创建多个条形图时缺少分组变量
- sql - GROUPBY 多对多与自身
- tensorflow - 用于二进制分类的 DCNN 收敛到 50%/50%
- python - 如何将 Julia 标准输出重定向到 IPython 控制台?
- inno-setup - Inno Setup Preprocessor 可以用于构建重复的自定义消息集吗?
- multithreading - 如何从结构向量中生成线程以从向量中的每个结构运行 impl fn?
- mql4 - MQL4 如何检查最后一个未平仓头寸是否盈利
- jquery - 如何在jquery中通过索引号更改标题