OrderedDict移动到Python 3.5的端到端替代方案+

2024-05-18 23:44:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有n个参数的dict:

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)

但是,对于Python3.5+(refreference:https://stackoverflow.com/a/16664932/7615751)来说,这不起作用

对于较新版本的Python,是否有替代方案?如果另一种方法更好,我也很感激使用它的建议

我不想通过定义一个固定的参数顺序来解决这个问题,因为我有很多这样的表,它们有不同数量的参数(尽管它们总是有a、B、C参数)


Tags: tofalse参数movetabledictendlast
1条回答
网友
1楼 · 发布于 2024-05-18 23:44:04

让我们假设

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'])

相关问题 更多 >

    热门问题