Tag: python

我如何parsingGoogle App Engine中的JSON?

我想parsing一个JSONstring到Google App Engine(python)下的一个对象。 你有什么build议? 编码/串化的东西也不错。 是你build议build立,还是我必须包括在我的应用程序库? 它安全吗? 谢谢。

为什么要在python中通过string来声明unicode?

我还在学Python,我有一个疑问: 在Python 2.6.x中,我通常在文件头中声明这样的编码(如PEP 0263 ) # -*- coding: utf-8 -*- 之后,我的string照常写: a = "A normal string without declared Unicode" 但每次我看到一个python项目代码,编码没有在头上声明。 相反,它是这样的每一个string声明: a = u"A string with declared Unicode" 有什么不同? 这是什么目的? 我知道Python 2.6.x默认设置ASCII编码,但是它可以被头声明覆盖,那么每个string声明有什么意义呢? 附录:似乎我把文件编码与string编码混在一起。 感谢您解释:)

用matplotlib同时绘制两个直方图

我使用文件中的数据创build了一个直方图,没有任何问题。 现在我想在同一个直方图中叠加另一个文件中的数据,所以我做了类似的事情 n,bins,patchs = ax.hist(mydata1,100) n,bins,patchs = ax.hist(mydata2,100) 但是问题在于,对于每个intervale来说,只有价值最高的酒吧出现,另一个是隐藏的。 我想知道我怎么能用不同的颜色同时绘制直方图

Python:从urllib2.urlopen调用获取HTTP标头?

urllib2是否在urlopen调用时获取整个页面? 我只想读取HTTP响应头,而不会得到页面。 它看起来像urllib2打开HTTP连接,然后得到实际的HTML页面…或者它只是开始用urlopen调用缓冲页面? import urllib2 myurl = 'http://www.kidsidebyside.org/2009/05/come-and-draw-the-circle-of-unity-with-us/' page = urllib2.urlopen(myurl) // open connection, get headers html = page.readlines() // stream page

Python – 循环内的上一个和下一个值

我如何在Python中做这样的事情? foo = somevalue previous = next = 0 for (i=1; i<objects.length(); i++) { if (objects[i]==foo){ previous = objects[i-1] next = objects[i+1] } }

在Matplotlib中的Bin大小(直方图)

我正在使用matplotlib做直方图。 基本上,我想知道是否有任何方法来手动设置垃圾箱的大小,而不是垃圾箱的数量。 任何有任何想法的人都非常感激。 谢谢

如何正确处理SIGTERM信号?

假设我们有这样一个用python编写的简单的守护进程: def mainloop(): while True: # 1. do # 2. some # 3. important # 4. job # 5. sleep mainloop() 我们使用start-stop-daemon ,默认情况下,它会在-stop上发送SIGTERM ( TERM )信号。 假设当前执行的步骤是#2 。 在这个时刻,我们发送TERM信号。 发生什么事是执行立即终止。 我发现我可以使用signal.signal(signal.SIGTERM, handler)处理信号事件signal.signal(signal.SIGTERM, handler)但是它仍然会中断当前的执行并将控制权交给handler 。 所以,我的问题是 – 是否有可能不中断当前的执行,但在单独的线程(?)处理TERM信号,以便我能够设置shutdown_flag = True以便mainloop()有机会优雅地停止?

Python中多个级别的“collection.defaultdict”

感谢一些伟大的人们,我发现了collections.defaultdict提供的可能性,特别是在可读性和速度方面。 我已经把它们用于成功。 现在我想实现三个级别的字典,其中两个字典是defaultdict ,最低的是int 。 我没有find适当的方法来做到这一点。 这是我的尝试: from collections import defaultdict d = defaultdict(defaultdict) a = [("key1", {"a1":22, "a2":33}), ("key2", {"a1":32, "a2":55}), ("key3", {"a1":43, "a2":44})] for i in a: d[i[0]] = i[1] 现在这是有效的,但是下面这个是所期望的行为,并不是: d["key4"]["a1"] + 1 我怀疑我应该在某个地方声明第二层defaultdict是inttypes的,但我没有find在哪里或如何做。 我首先使用defaultdict的原因是为了避免为每个新密钥初始化字典。 更优雅的build议? 感谢pythoneers!

并行化后,pandasgroupby

我已经使用了rosetta.parallel.pandas_easy并行化后应用,例如: from rosetta.parallel.pandas_easy import groupby_to_series_to_frame df = pd.DataFrame({'a': [6, 2, 2], 'b': [4, 5, 6]},index= ['g1', 'g1', 'g2']) groupby_to_series_to_frame(df, np.mean, n_jobs=8, use_apply=True, by=df.index) 然而,有没有人想出了如何并行化返回数据框的函数呢? 正如预期的那样,此代码不能正常工作。 def tmpFunc(df): df['c'] = df.a + df.b return df df.groupby(df.index).apply(tmpFunc) groupby_to_series_to_frame(df, tmpFunc, n_jobs=1, use_apply=True, by=df.index)

是否可以在Virtualenv沙盒上添加PyQt4 / PySide软件包?

我在web.py , simplejson和其他面向networking的软件包中使用Virtualenv ,在我的开发环境中获利。 我打算开发一个简单的使用Qt的Python客户端来重用一些使用web.py开发的Api。 有没有人在这里成功地安装了PyQt4与Virtualenv? 可能吗? 我已经下载了所有的二进制文件,并在我的python2.6目录下全局安装了PyQt4 。 如果我不使用–no-site–packages选项,Virtualenv会在我的新沙盒中正确地包含PyQt4 ,但显然,我不需要所有的全局包。 有没有一种干净的方式来准备一个新的沙箱与–no-site–packages选项,然后添加PyQt4或PySide使用pip , easy_install或其他魔术技巧?