小编Let*_*t4U的帖子

从IPython复制代码而不带领三点

我正在使用IPython Qt控制台,当我从Ipython复制代码时,就会出现这样的情况:

    class notathing(object):
        ...:
        ...:     def __init__(self):
        ...:         pass
        ...:
Run Code Online (Sandbox Code Playgroud)

有没有办法复制它们没有那些领先的三点和双立方?

PS我尝试了两个CopyCopy Raw Text在上下文菜单中,它仍然是相同的.操作系统:Debian Linux 7.2(KDE).

python ipython qtconsole

18
推荐指数
3
解决办法
3094
查看次数

熊猫和unicode

这是一个我正在离开的字符串pandas.DataFrame.to_json(),将其放入redis,将其从其他地方的redis中取出,并尝试通过pandas.read_json()以下方式读取它:

DFJ {"args":{"0":"[]","1":"[]","2":"[]","3":"[]","4":"[]","5":"[]","6":"[]","7":"[]"},"date":{"0":1385944439000000000,"1":1385944439000000000,"2":1385944440000000000,"3":1385944440000000000,"4":1385944440000000000,"5":1385944440000000000,"6":1385944440000000000,"7":1385944440000000000},"host":{"0":"yy38.segm1.org","1":"kyy1.segm1.org","2":"yy10.segm1.org","3":"yy24.segm1.org","4":"yy24.segm1.org","5":"yy34.segm1.org","6":"yy15.segm1.org","7":"yy15.segm1.org"},"kwargs":{"0":"{}","1":"{}","2":"{}","3":"{}","4":"{}","5":"{}","6":"{}","7":"{}"},"operation":{"0":"x_gbinf","1":"x_initobj","2":"x_gobjParams","3":"gtfull","4":"x_gbinf","5":"gxyzinf","6":"deletemfg","7":"gxyzinf"},"thingy":{"0":"a13yy38","1":"a19kyy1","2":"a14yy10","3":"a14yy24","4":"a14yy24","5":"a12yy34","6":"a15yy15","7":"a15yy15"},"status":{"0":-101,"1":1,"2":-101,"3":-101,"4":-101,"5":-101,"6":1,"7":-101},"time":{"0":0.000801,"1":0.003244,"2":0.002247,"3":0.002787,"4":0.001067,"5":0.002652,"6":0.004371,"7":0.000602}}
Run Code Online (Sandbox Code Playgroud)

好像它里面没有任何unicode.然而,在尝试.read_json()它时,我得到:

Traceback (most recent call last):
  File "./sqlprofile.py", line 160, in <module>
    maybe_save_dataframes(rconn, configd, results)
  File "./sqlprofile.py", line 140, in maybe_save_dataframes
    h5store.append(out_queue, df)
  File "/home/username/anaconda/lib/python2.7/site-packages/pandas/io/pytables.py", line 658, in append
    self._write_to_group(key, value, table=True, append=True, **kwargs)
  File "/home/username/anaconda/lib/python2.7/site-packages/pandas/io/pytables.py", line 923, in _write_to_group
    s.write(obj = value, append=append, complib=complib, **kwargs)
  File "/home/username/anaconda/lib/python2.7/site-packages/pandas/io/pytables.py", line 2985, in write
    **kwargs)
  File "/home/username/anaconda/lib/python2.7/site-packages/pandas/io/pytables.py", line 2717, in create_axes
    raise e
TypeError: [unicode] is not implemented as a table column
> …
Run Code Online (Sandbox Code Playgroud)

python unicode pandas

16
推荐指数
2
解决办法
3万
查看次数

从字符串中删除无效的UTF-8字符(Go lang)

我在字符串列表的json.Marshal上得到这个:

json: invalid UTF-8 in string: "...ole\xc5\"
Run Code Online (Sandbox Code Playgroud)

原因很明显,但是如何在Go中删除/替换这些字符串?我一直在阅读docst unicodeunicode/utf8package,似乎没有明显/快速的方法来做到这一点.

例如,在Python中,您可以使用其中的方法来删除无效字符,替换为指定字符或严格设置,这会在无效字符上引发异常.我怎么能在Go中做同样的事情?

更新:我的意思是获得异常的原因(恐慌?) - json.Marshal期望有效的UTF-8字符串的非法字符.

(非法字节序列如何进入该字符串并不重要,通常的方式 - 错误,文件损坏,其他程序不符合unicode等)

unicode json go

15
推荐指数
2
解决办法
2万
查看次数

在Virtualbox/Vagrant中列出natpf规则

我经常在运行Vagrant时遇到这样的错误:

VBoxManage: error: A NAT rule of this name already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component     NATEngine, interface INATEngine, callee nsISupports
VBoxManage: error: Context: "AddRedirect(Bstr(strName).raw(), proto,    Bstr(strHostIp).raw(), RTStrToUInt16(strHostPort), Bstr(strGuestIp).raw(),       RTStrToUInt16(strGuestPort))" at line 1524 of file VBoxManageModifyVM.cpp
Run Code Online (Sandbox Code Playgroud)

我想在做之前删除所有端口转发规则vagrant up,但是我在列出natpf规则时遇到了麻烦.有没有办法vboxmanage在Vagrant中使用或通过一些设施来做到这一点?

更新:Vagrant版本1.3.4.我可以按如下方式复制问题:启动vm安装normal way(vagrant up)并在安装期间强制关闭vm(这模拟了例如安装失败).然后natpf1端口转发规则留在系统中.清理它的唯一方法是vboxmanage modifyvm #{vmid} --natpf1 delete rule_name,但是你必须事先知道规则名称...此外,规则保留在那之后vagrant destroy,似乎我的Ruby natpf1清除功能Vagrant.configure不会运行,这意味着陈旧的规则仍然与Vagrant试图创造的"新鲜"冲突相冲突.

virtualbox vagrant

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

异常(Python)中的堆栈跟踪中的locals()和globals()

虽然堆栈跟踪在Python中很有用,但大多数情况下问题根源的数据都缺失了 - 有没有办法确保至少将locals()(以及可能的globals())添加到打印的堆栈跟踪中?

python exception stack-trace

10
推荐指数
2
解决办法
1255
查看次数

SQLAlchemy + PostgreSQL + PG正则表达式

SA支持正则表达式,但那些似乎是Python regexps(SQLalchemy查询中的正则表达式?)

我需要在匹配某些行时使用正则表达式(一行包含1个日志行,因此正则表达式是自然匹配)但出于性能原因,我更倾向于使用PG后端,就像在这个问题中一样:

select * from table where name ~ 'foo';
Run Code Online (Sandbox Code Playgroud)

如何在一个查询中将PG实现的正则表达式和SQLAlchemy对象选择结合起来?

python regex postgresql sqlalchemy

8
推荐指数
2
解决办法
3444
查看次数

在Go中等同于setdefault?

我可以:

_, ok := some_go_map[a_key]
Run Code Online (Sandbox Code Playgroud)

测试密钥的存在.

但是我被Python的dict的setdefault方法所破坏(如果一个键没有在"map"[dict == associative array]中设置值,将它设置为给定的默认值,然后得到它;否则只是得到).

想知道Go中是否有一些成语可以达到同样的目的?

python go

8
推荐指数
2
解决办法
3901
查看次数

熊猫,数据框,groupby,std

这里的熊猫新手。一个(微不足道的)问题:主机、操作、执行时间。我想按主机分组,然后按主机+操作,计算每个主机的执行时间的标准偏差,然后按主机+操作对。看起来很简单?

它适用于按单列分组:

df
Out[360]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 132564 entries, 0 to 132563
Data columns (total 9 columns):
datespecial    132564  non-null values
host           132564  non-null values
idnum          132564  non-null values
operation      132564  non-null values
time           132564  non-null values
...
dtypes: float32(1), int64(2), object(6)



byhost = df.groupby('host')


byhost.std()
Out[362]:
                 datespecial         idnum      time
host
ahost1.test  11946.961952  40367.033852  0.003699
host1.test   15484.975077  38206.578115  0.008800
host10.test           NaN  37644.137631  0.018001
...
Run Code Online (Sandbox Code Playgroud)

好的。现在:

byhostandop = df.groupby(['host', 'operation'])

byhostandop.std()
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-364-2c2566b866c4> in <module>() …
Run Code Online (Sandbox Code Playgroud)

python statistics pandas

7
推荐指数
1
解决办法
9111
查看次数

在列表推导中增加defaultdict(Python)

我有这个:

   self.lines = [...]
   cnt = defaultdict(int)
   for line in self.lines:
       cnt[line] += 1
Run Code Online (Sandbox Code Playgroud)

现在这个工作.但我想知道是否可以使用列表理解来完成(增加defaultdict中特定行的计数)?

这是语法错误:

   [cnt[line] += 1 for line in self.lines]
Run Code Online (Sandbox Code Playgroud)

顺便说一下,为什么不能在列表理解中使用这样的表达式呢?它很简单,并且会极大地改善这些代码的简洁性和性能.

python list-comprehension

6
推荐指数
1
解决办法
3419
查看次数

双人的类型

学习Haskell,在ghci:

Prelude Data.Ratio> :type 0.15
0.15 :: Fractional a => a

Prelude Data.Ratio> 0.15
0.15
it :: Double
Run Code Online (Sandbox Code Playgroud)

为什么类型不同?那两个0.15的实例实际上是不同的类型吗?

haskell

6
推荐指数
1
解决办法
215
查看次数