小编saf*_*afl的帖子

Python + JSON,没有发生什么事?

转储和装载的字典与None关键,结果在一个字典'null'作为重点.

值不受影响,但如果'null'实际存在字符串键,情况会变得更糟.

我在这做错了什么?为什么我不能dictNone键序列化/反序列化?

>>> json.loads(json.dumps({'123':None, None:'What happened to None?'}))
{u'123': None, u'null': u'What happened to None?'}
>>> json.loads(json.dumps({'123':None, None:'What happened to None?', 'null': 'boom'}))
{u'123': None, u'null': u'boom'}
Run Code Online (Sandbox Code Playgroud)

python json dictionary

19
推荐指数
3
解决办法
4万
查看次数

使用Matplotlib绘制3D图:隐藏轴但保留轴标签?

我正在使用Matplotlib来可视化三维数组.我几乎按照我想要的方式得到了它,除了一个小小的障碍...请参阅下面的插图和描述我可以做什么以及我想要它做什么...

  1. 展示一堆带有标签的立方体,还有一堆其他的东西.
  2. 显示一堆立方体但没有轴标签.
  3. 这就是我想要但却无法做到的事情...我想要显示一堆带有轴标签的立方体,但没有别的.

在此输入图像描述

我希望你们能帮助我:)请参阅下面的来源.

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import rcParams
import numpy as np
rcParams['axes.labelsize'] = 14
rcParams['axes.titlesize'] = 16
rcParams['xtick.labelsize'] = 14
rcParams['ytick.labelsize'] = 14
rcParams['legend.fontsize'] = 14
rcParams['font.family'] = 'serif'
rcParams['font.serif'] = ['Computer Modern Roman']
rcParams['text.usetex'] = True
rcParams['grid.alpha'] = 0.0

def make_cube():
    """ A Cube consists of a bunch of planes..."""

    planes = {
        "top"    : ( [[0,1],[0,1]], [[0,0],[1,1]], [[1,1],[1,1]] ),
        "bottom" : ( [[0,1],[0,1]], [[0,0],[1,1]], [[0,0],[0,0]] ),
        "left"   : …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib mplot3d

13
推荐指数
1
解决办法
7566
查看次数

具有超时和大输出的python子进程(> 64K)

我想执行一个进程,以秒为单位将执行时间限制为一些超时并获取进程产生的输出.我想在windows,linux和freebsd上做这个.

我试过以三种不同的方式实现它:

  1. cmd - 没有超时和subprocess.PIPE用于输出捕获.

    行为:按预期运行但不支持超时,我需要超时...

  2. cmd_to - 使用timeout和subprocess.PIPE进行输出捕获.

    BEHAVIOR:当输出> = 2 ^ 16字节时阻止子进程执行.

  3. cmd_totf - 使用timeout和tempfile.NamedTemporaryfile进行输出捕获.

    行为:按预期运行,但在磁盘上使用临时文件.

这些可在下面获得进一步检查.

从下面的输出中可以看出,当使用子处理时,超时代码会阻止子进程的执行.PIPE和子进程的输出是> = 2 ^ 16字节.

子进程文档说明在调用process.wait()和使用subprocessing.PIPE时这是预期的,但是在使用process.poll()时没有给出警告,那么这里出了什么问题?

我在cmd_totf中有一个使用tempfile模块的解决方案,但权衡是它将输出写入磁盘,这是我真正想要避免的.

所以我的问题是:

  • 我在cmd_to做错了什么?
  • 有没有办法做我想要的,不使用临时文件/保持输出在内存中.

用于生成一堆输出的脚本('exp_gen.py'):

#!/usr/bin/env python
import sys
output  = "b"*int(sys.argv[1])
print output
Run Code Online (Sandbox Code Playgroud)

子处理周围包装器的三种不同实现(cmd,cmd_to,cmd_totf).Popen:

#!/usr/bin/env python
import subprocess, time, tempfile
bufsize = -1

def cmd(cmdline, timeout=60):
  """
  Execute cmdline.
  Uses subprocessing and subprocess.PIPE.
  """

  p = subprocess.Popen(
    cmdline,
    bufsize = bufsize,
    shell   = False,
    stdin   = subprocess.PIPE,
    stdout  = subprocess.PIPE,
    stderr  = subprocess.PIPE
  ) …
Run Code Online (Sandbox Code Playgroud)

python subprocess timeout

10
推荐指数
1
解决办法
8803
查看次数

使用RabbitMQ和Python进行基于内容的路由

RabbitMQ和Python是否可以进行基于内容的路由?

AMQP标准和RabbitMQ声称支持基于内容的路由,但是有没有支持指定基于内容的绑定等的Python库?

我目前使用的库(py-amqplib http://barryp.org/software/py-amqplib/)似乎只支持基于主题的路由和简单的模式匹配(#,*).

python routing amqp rabbitmq

9
推荐指数
2
解决办法
5111
查看次数

boost::subgraph 中的顶点问题

问题

帖子底部的代码打印出来:

Vertices in g  = [ 0 1 2 3 4 ]
Vertices in g' = [ 0 1 ]
Run Code Online (Sandbox Code Playgroud)

我预计输出为:

Vertices in g  = [ 0 1 2 3 4 ]
Vertices in g' = [ 3 4 ]
Run Code Online (Sandbox Code Playgroud)

这是 boost::subgraph 中的错误还是我对库的理解?

有问题的代码

#include <sstream>
#include <iostream>

#include <boost/graph/subgraph.hpp>
#include <boost/graph/adjacency_list.hpp>

using namespace std;
using namespace boost;

// Underlying graph representation and implementation
typedef adjacency_list_traits<vecS, vecS, directedS> Traits;

// Graph representation
typedef subgraph< adjacency_list<vecS, vecS, directedS,
    property<vertex_color_t, int>, …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-graph

3
推荐指数
1
解决办法
586
查看次数