Fal*_*man 2 python ordereddictionary python-3.x
每当我尝试将json解析为OrderedDict时,它的结果顺序与json不同.我试试这样:
from collections import OrderedDict
data = OrderedDict(json.loads(resp.read().decode("utf-8")), object_pairs_hook=OrderedDict)
Run Code Online (Sandbox Code Playgroud)
我做错了什么,如果是的话,我该怎么做才能修复它,或者在python中它是不可能的?
我已经看到了类似的东西object_pairs_hook=collections.OrderedDict但是甚至没有正确执行.它无法解决参考.
你有一个关键字参数在错误的地方,如果我们添加更多的空格可能会更清楚:
data = OrderedDict(
json.loads(
resp.read().decode("utf-8") # one argument to json.loads
),
object_pairs_hook=OrderedDict # second argument to OrderedDict
)
Run Code Online (Sandbox Code Playgroud)
OrderedDict没有这样的论点 - 你打算把它传递给json.loads,然后你不需要重新创建它:
data = json.loads(
resp.read().decode("utf-8"),
object_pairs_hook=OrderedDict
)
Run Code Online (Sandbox Code Playgroud)
当你离开了,你没有看到你想要的顺序的原因object_pairs_hook是,json.loads正在创建一个香草,无序的字典然后将其转换为OrderedDict.