作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法直接将 json 数组反序列化为集合?
data.json(是的,这只是一个 json 数组。)
["a","b","c"]
请注意,json 数组包含唯一元素。
目前我的工作流程如下。
open_file = open(path, 'r')
json_load = json.load(open_file) # this returns a list
return set(json_load) # which I am then converting to a set.
有没有办法做这样的事情?
open_file = open(path, 'r')
return json.load(open_file, **arguments) # this returns a set.
还有没有其他方法可以在没有 json 模块的情况下完成此操作?当然,我不是第一个需要一套解码器的人。
最佳答案
没有。您必须对 json 模块类之一进行子类化 JSONDecoder
并重写创建对象的方法,才能自己完成此操作。
而且这也不值得这么麻烦。 json 数组实际上映射到 python 中的列表 - 它们有顺序,并且可以允许重复 - 集合不能正确表示 json 数组。因此提供一个集合并不是 json 解码器的工作。
转换是您能做的最好的事情。您可以创建一个函数并在需要时调用它:
def json_load_set(f):
return set(json.load(f))
关于python - python中将json数组直接反序列化为集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51192417/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!