用于Python 3.5+;
我有一个带有n个参数的dict:用于Python 3.5+;,python,Python,我有一个带有n个参数的dict: print(table) { "Parameters":{ "erVersion":"1.0", "A":"a", "rVersion":"1.0", "B":"b", "C":
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+中不起作用(参考文献:)
对于较新版本的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
,它不支持移动到\u end()
。你可以用
table['Parameters'] = OrderedDict(table['Parameters'])
它在3.8上对我有效。您是否会得到“AttributeError:‘dict’对象没有属性‘move_to_end’”?参数在您的example@Reti43没错。我可以绕开它吗?你需要使用一个非常规的
dict
。你把自己联系起来的问题解决了你的问题……这能回答你的问题吗?是的,这就是问题所在。谢谢你的解释。