python

Python json格式化输出

  输出json格式时默认没有换行,不便于查看json结果,可以采用这样进行输出:json.dumps(ret, sort_keys = True, indent = 4, separators=(',', ': ')),进行缩进和换行,方便查看结果。 参考 http://stackoverflow.com/questions/16318543/cant-pretty-print-json-from-python…

Read more

Switch python version and solve this problem: Fatal Python error: PyThreadState_Get: no current thread

  Switch python version in MAC-OS is a confused problem, so i use pyenv to switch python version, it works very well: vinllen@ ~$ python --version Python 2.7.11 vinllen@ ~$ pyenv global <tab> --help 2.7.10 3.4.0 system vinllen@ ~$ pyenv global 3.4.0 --help 2.7.10 3.4.0 system vinllen@ ~$ python --version Python 3.4.0   Problem occurs when i using cmak…

Read more

python 单元测试nose mock使用小结

  最近终于把手头的项目搞完了,完了QA要求写单元测试。这个差不多是我第2个python项目,各种不熟啊,花了2周多写完代码,花了1周多写测试,额,准确的说是学写测试。基本上用的就是nose+mock,真是个好用的东西,现小结一下吧。 nose   nose是开源的测试库,比unittest更为强大,其运行顺序按setUp->test_func_1->test_func_2->...->tearDown顺序执行。其中setUp是初始化定义各个参数的,tearDown是执行完各个测试函数再执行的,中间的test_func_*就是自己要测试的函数。比如我们写了一个add()函数,那么如果对其进行测试就需要定义一个test_add()函数。举个例子: def setUp(): """ @brief setUp -…

Read more

python异步通信之gevent.event.Event

  在Gevent Tutorial中所介绍的,我们可以用gevent.event.Event或者'gevent.event.AsyncResult'当作协程之间的事件,其中后者可以在唤醒别的协程时带上一个值。当然,我们还可以用gevent.event.Queue, gevent.event.Group,gevent.coros import BoundedSemaphore等等用作协程间通信的工具。今天我所说的是gevent.event.Event。   正如文档中所给出的最简单的例子: import gevent from gevent.event import Event ''' Illustrates the use of events ''' evt = Event() def setter(): '''After…

Read more