我正在编写一个Web应用程序,它期望一个json文件在python列表中具有正确的json对象排序.它应该按x,y排序,但无论我尝试什么,值总是返回y,x.
list: [{'y': 0.0, 'x': 1360633172168}, {'y': 0.0, 'x': 1360633172168}, ...
Run Code Online (Sandbox Code Playgroud)
在将值写入控制台之前,任何人都可以了解如何重新排序这些内容吗?
label = ["x", "y"]
sen = []
for i in average:
now = int(round(time.time() * 1000))
l = now, i[0]
sen.append(l)
x = [dict(zip(label, e)) for e in sen]
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种方法,每次都得到相同的结果.
亚当
唯一的解决方案是传递一个数组,或者存储命令python一侧的键,这些键被排序并使用它来访问dict.
JSON:
{
"order": ["x", "y"],
"d": {x: 34, y:36}
}
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
for key in order:
print d[key]
Run Code Online (Sandbox Code Playgroud)
这将允许您按正确的顺序浏览dict键.
Dicts是哈希映射的一种形式,因此它们不保留键顺序.
你可能想要研究一下 collections.OrderedDict
In [9]: d = collections.OrderedDict()
In [10]: d['x'] = 1360633172168
In [11]: d['y'] = 0.0
In [12]: d
Out[12]: OrderedDict([('x', 1360633172168), ('y', 0.0)])
In [13]: d['x']
Out[13]: 1360633172168
In [14]: d['y']
Out[14]: 0.0
Run Code Online (Sandbox Code Playgroud)