- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在查看 json
模块的源代码以尝试回答另一个问题,这时我发现了一些奇怪的东西。去掉docstring和一大堆关键字参数,json.load
的源码如下:
def load(fp):
return loads(fp.read())
这和我想象的完全不一样。如果 json.load
不能避免一次读取整个文件的开销,那么它比 json.loads(f.read())
节省的唯一优势是几个字符的源代码?为什么它甚至存在?为什么它获得短名称,而不是 loads
获得 load
名称和 load
获得类似 loadf
的名称?我能想到原因(例如复制pickle
接口(interface)),但是谁能提供一个权威的答案而不是猜测?
最佳答案
尽管期望 json.load()
做得更好是很自然的,但正如评论中所提到的,它并不能保证这样做。这纯粹是推测,但如果我是 Python 维护者,我会设计模块以实现简单性和最少的维护开销。
Python 标准库 json
模块在速度或内存使用方面都不是最优的。对于不同的甜蜜点,有许多替代的 JSON 读取实现,其中一些具有 Python 绑定(bind),例如Jansson :
https://stackoverflow.com/a/3512887/315168
替代 JSON 实现源于以高效方式处理流和/或大量数据的必要性。
关于python - json.load 是低效的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20855899/
我写了一个函数,应该用值替换两个定界符之间的代码,它返回(我将其应用到的字符串是 HTML 对象的 .outerHTML)。 这将类似于它在例如中的使用方式。 Vue.js 或 Angular。 看起
好的,我有一个 Django View ,如下所示: @render_to('home/main.html') def login(request): # also tried Client.
由于我创建的几乎所有项目都包含 ListView,因此我想到创建一个类,其中包含修改 ListView 的所有重要功能。它看起来像这样: 主窗体: ListViewFunctions LVF = ne
The default implementation on Stream creates a new single-byte array and then calls Read. While this
我当然不是 Drupal 专家,但我之前设计并构建了一些数据库,所以我对第 3 方团队正在处理的数据库结构感到困惑,我已经将 Sequel Pro 添加到其中虚拟内容。我认为如果使用 Drupal 的
我想生成一个随机的短十六进制字符串(比如 8 位或 16 位)。 有很多选择可以做到这一点,例如,从我的头顶开始: uuid.uuid4().hex[:8] md5().hexdigest()[:8]
我是一名优秀的程序员,十分优秀!