当前位置: 首页 > 面试题库 >

Python-我可以将JSON加载到OrderedDict吗?

凌华奥
2023-03-14
问题内容

可以在中使用OrderedDict json.dump。也就是说,OrderedDict可以用作JSON的输入。

但是可以用作输出吗?如果可以,怎么办?就我而言,我想load放入OrderedDict,以便可以将键的顺序保留在文件中。

如果没有,是否有某种解决方法?


问题答案:

是的你可以。通过指定JSONDecoder的object_pairs_hook参数。实际上,这是文档中给出的确切示例。

>>> json.JSONDecoder(object_pairs_hook=collections.OrderedDict).decode('{"foo":1, "bar": 2}')
OrderedDict([('foo', 1), ('bar', 2)])
>>> 

你可以将此参数传递给json.loads(如果不需要出于其他目的的Decoder实例),如下所示:

>>> import json
>>> from collections import OrderedDict
>>> data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
>>> print json.dumps(data, indent=4)
{
    "foo": 1,
    "bar": 2
}
>>> 

使用json.load以相同的方式完成:

>>> data = json.load(open('config.json'), object_pairs_hook=OrderedDict)


 类似资料:
  • 问题内容: 好的,所以我可以在中使用OrderedDict 。也就是说,OrderedDict可以用作JSON的输入。 但是可以用作输出吗?如果可以,怎么办?就我而言,我想放入OrderedDict,以便可以将键的顺序保留在文件中。 如果没有,是否有某种解决方法? 问题答案: 是的你可以。通过指定JSONDecoder的参数。实际上,这是文档中给出的确切示例。 您可以将此参数传递给(如果不需要其他

  • 我尝试使用和将添加到中,但无法将添加到中。我正在使用NetBeans和后端MySQL。请帮帮我. 编辑:谢谢,但我不知道如何分组。你能帮帮我吗?我有4列。第一列单元格包含项目名称,第二列单元格包含数量,第三列和第四列单元格连接JRadio按钮。然后我想在每一行中分组包含JRadio按钮的第三列和第四列单元格 编辑:如果我试图通过使用这个在jTable的自定义代码中添加radiobutton, ,那

  • 问题内容: 在使用库在JavaScript中绘制图表时,我还是一个新手。我刚刚开始尝试使用Chartjs,但一直无法使用getJson或其他任何方式加载我的json对象并替换标签和数据。我以前使用过HighCharts,相比之下,它非常简单。另外,我将如何将其放入Angular的指令中并显示出来。 https://jsfiddle.net/0u9Lpttx​​/1/ index.html data

  • 问题内容: 这是我从.NET上的请求获取的JSON: 我想使用LINQ来捕获字段“ url”。我有很多要求,有点不同。因此,我不会每次创建C#类并将其反序列化。 它是提取单个字段的一种方法吗?谢谢! 问题答案: 无需Linq,只需使用(使用Json.Net) Linq版本不太可读 文档: LINQ to JSON

  • 问题内容: 我有一个我认为可能是非常明显的问题,但是我在任何地方都找不到答案。 我只是想将一些JSON数据从服务器加载到客户端。现在,我正在使用JQuery通过AJAX调用(下面的代码)加载它。 这位于html文件中。到目前为止,它仍然有效,但问题是我想使用AngularJS。现在,虽然Angular CAN使用变量,但我无法将整个内容加载到变量中,因此可以为每个循环使用a。这似乎与通常位于.js

  • 问题内容: 我想用JLabel替换JButton,并且希望我的代码在单击JLabel时执行一些操作。 当我拥有JButton时,我使用动作侦听器来处理按钮的单击: 当我替换为时,我在Eclipse中收到以下错误消息: 对于JLabel类型,未定义方法addActionListener(ChipsListener) 但我确实知道应该可以将单击处理程序附加到JLabel。有人知道该怎么做吗? 问题答案