我有一些500MB的JSON文件。 如果我使用“简单的”json.load一次加载它的内容,将消耗大量的内存。 有没有办法部分读取文件? 如果这是一个文本,行分隔文件,我将能够遍历行。 我正在寻找比喻。 有什么build议么? 谢谢
我在Python 2.6中使用标准的json模块来序列化浮动列表。 不过,我得到这样的结果: >>> import json >>> json.dumps([23.67, 23.97, 23.87]) '[23.670000000000002, 23.969999999999999, 23.870000000000001]' 我希望浮点数只有两位小数。 输出应该是这样的: >>> json.dumps([23.67, 23.97, 23.87]) '[23.67, 23.97, 23.87]' 我曾尝试定义我自己的JSON编码器类: class MyEncoder(json.JSONEncoder): def encode(self, obj): if isinstance(obj, float): return format(obj, '.2f') return json.JSONEncoder.encode(self, obj) 这适用于唯一的浮动对象: >>> json.dumps(23.67, cls=MyEncoder) '23.67' 但嵌套对象失败: >>> json.dumps([23.67, 23.97, 23.87]) '[23.670000000000002, 23.969999999999999, 23.870000000000001]' 我不想有外部的依赖关系,所以我宁愿坚持使用标准的json模块。 我怎样才能做到这一点?
你可以想一个很好的方法(也许与itertools)将一个迭代器分成给定大小的块? 因此,具有chunks(l,3) l=[1,2,3,4,5,6,7]变成迭代器[1,2,3], [4,5,6], [7] 我可以考虑一个小程序来做到这一点,但可能itertools不是一个好方法。
冻结集是一个冻结集。 一个冻结的列表可能是一个元组。 冻结字典是什么? 一个不可改变的,可拆分的字典。 我想这可能是像collections.namedtuple ,但更像是一个冻结键字典(半冻结字典)。 不是吗? “frozendict”应该是一个冷冻字典,它应该有keys , values , get等等,并支持,等等。
在这个python示例之后 ,我使用下面的代码将一个string编码为Base64: >>> import base64 >>> encoded = base64.b64encode(b'data to be encoded') >>> encoded b'ZGF0YSB0byBiZSBlbmNvZGVk' 但是,如果我离开领导b : >>> encoded = base64.b64encode('data to be encoded') 我得到以下错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python32\lib\base64.py", line 56, in b64encode raise TypeError("expected bytes, not %s" % s.__class__.__name__) TypeError: expected bytes, not str 为什么是这样?
我想从Javascript代码中调用Python函数,因为在Javascript没有替代方法来执行我想要的操作。 这可能吗? 你可以调整下面的代码片段? Javascript部分: var tag = document.getElementsByTagName("p")[0]; text = tag.innerHTML; // Here I would like to call the Python interpreter with Python function arrOfStrings = openSomehowPythonInterpreter("~/pythoncode.py", "processParagraph(text)"); ~/pythoncode.py 包含使用高级库的函数,在Javascript中没有易于编写的等价物 import nltk # is not in Javascript def processParagraph(text): … nltk calls … return lst # returns a list of strings (will be converted to […]
没有i可以做下面的事吗? for i in range(some_number): # do something 如果你只想做N次,不需要迭代器。
我已经安装了MSVC ++ 2010 Express,而且我的vcvarsall.bat文件位于C:\Program Files\Microsoft Visual Studio 10.0\VC ,它位于我的系统PATH中。 当我运行easy_install ,找不到vcvarsall.bat。 有什么我需要在我的distutils.cfg文件中设置指向我的MSVC ++安装? G:\>easy_install hg-git install_dir C:\Python26\Lib\site-packages\ Searching for hg-git Best match: hg-git 0.2.6 Processing hg_git-0.2.6-py2.6.egg hg-git 0.2.6 is already the active version in easy-install.pth Using c:\python26\lib\site-packages\hg_git-0.2.6-py2.6.egg Processing dependencies for hg-git Searching for dulwich>=0.6.0 Reading http://pypi.python.org/simple/dulwich/ Reading http://samba.org/~jelmer/dulwich Reading http://launchpad.net/dulwich Best match: dulwich 0.7.1 Downloading […]
我用matplotlibsearch如何用尽可能less的指令来绘制东西,但在文档中找不到任何帮助。 我想绘制下面的东西: 以0为边长为2的线框立方体 以“0”为半径为1的“线框”球体 在坐标[0,0,0] 一个vector,在这一点开始,并进入[1,1,1] 怎么做?
如何让setup.py包含不属于代码的文件? (具体来说,这是一个许可证文件,但可能是其他任何东西。) 我想能够控制文件的位置。 在原始源文件夹中,该文件位于包的根目录中。 (即与最高级的__init__.py相同的级别)。我希望在安装软件包时将其保留在那里,而不pipe操作系统如何。 我怎么做?