小编Lon*_*Rob的帖子

Scrapy shell获取301重定向到没有参数的URL

Scrapy可以请求带GET参数的URL 以交互方式探索响应:

scrapy shell "https://duckduckgo.com/?q=foo"
Run Code Online (Sandbox Code Playgroud)

但是对于某些网站,我的请求被301重定向并且URL参数被剥离:

DEBUG: Redirecting (301) to <GET http://foo.com/mypage/> 
  from <GET http://foo.com/mypage/?bar=baz>
DEBUG: Crawled (200) <GET http://foo.com/mypage/> (referer: None)
Run Code Online (Sandbox Code Playgroud)

当我http://foo.com/mypage/?bar=baz正常访问我的浏览器时,我没有被重定向,GET参数仍然存在.

任何人都可以建议我如何避免被重定向?

python redirect scrapy

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

从Python调用Cython C函数

我有一个Cython名为foo.pyx包含以下功能的文件:

def add_one(int n):
    cdef int m = n + 1
    return m

cdef int c_add_one(int n):
    return n + 1
Run Code Online (Sandbox Code Playgroud)

我使用构建此pyx文件cython -a foo.pyx,然后可以执行:

>>> import foo
>>> foo.add_one(5)
6
>>> foo.c_add_one(5)
AttributeError: 'module' object has no attribute 'c_add_one'
Run Code Online (Sandbox Code Playgroud)

所以看起来我无法c_add_one从python 调用.使用声明函数有什么好处cdef

python cython

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

DataFrame.stack() 之后的新索引级别名称

(请注意,这个 SO 问题看起来相似但不同。)

我有一个 MultiIndexed,DataFrame其中包含代表年度数据的列:

>>> x = pd.DataFrame({
 'country': {0: 4.0, 1: 8.0, 2: 12.0},
 'series': {0: 553.0, 1: 553.0, 2: 553.0},
'2000': {0: '1100', 1: '28', 2: '120'},
 '2005': {0: '730', 1: '24', 2: '100'}
}).set_index(['country', 'series'])
>>> x
                2000 2005
country series           
4       553     1100  730
8       553       28   24
12      553      120  100
Run Code Online (Sandbox Code Playgroud)

当我堆叠年份时,新的索引级别没有名称:

>>> x.stack()
country  series      
4        553     2000    1100
                 2005     730
8        553     2000      28
                 2005      24
12       553 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在 vim 状态行中显示当前函数

我一生中 20% 的时间都在用 vim 编写代码,几乎完全是 javascript 和 python。另外 80% 的时间我主要是上下滚动我的源文件,试图记住我当前正在编辑哪个函数以及该函数属于哪个类。

由于我不明白的原因,这在技术上可能是不可能的,但是是否有任何 vim 插件允许 vim 状态行显示光标当前在 Python 和/或 Javascript 中所处的功能?

它看起来像这样:

带有位置的 Vim 状态行

这可能已经存在于 SublimeText 中。如果是这样,我可能最终会停止哭泣并进行转换。

一些提供此功能的Vim 插件:

更新

由于写这个问题我已经找到的ctags不会对C同样的事情,知道这方面的信息。但是如何让它显示在 Vim 状态行中呢?

vim ctags

6
推荐指数
3
解决办法
3941
查看次数

使用库时缩短大型堆栈跟踪

我经常与大型图书馆(例如pandasmatplotlib)合作

这意味着异常通常会产生较长的堆栈跟踪。

由于该错误很少出现在库中,而错误经常出现在我自己的代码中,因此在大多数情况下,我不需要查看库的详细信息。

几个常见的例子:

大熊猫

>>> import pandas as pd
>>> df = pd.DataFrame(dict(a=[1,2,3]))
>>> df['b'] # Hint: there _is_ no 'b'
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试访问未知密钥。这个简单的错误产生一个包含28行的stacktrace:

Traceback (most recent call last):
  File "an_arbitrary_python\lib\site-packages\pandas\core\indexes\base.py", line 2393, in get_loc
    return self._engine.get_loc(key)
  File "pandas\_libs\index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc (pandas\_libs\index.c:5239)
  File "pandas\_libs\index.pyx", line 154, in pandas._libs.index.IndexEngine.get_loc (pandas\_libs\index.c:5085)
  File "pandas\_libs\hashtable_class_helper.pxi", line 1207, in pandas._libs.hashtable.PyObjectHashTable.get_item (pandas\_libs\hashtable.c:20405)
  File "pandas\_libs\hashtable_class_helper.pxi", line 1215, in pandas._libs.hashtable.PyObjectHashTable.get_item (pandas\_libs\hashtable.c:20359)
KeyError: 'b'

During handling of the above exception, another exception occurred:

    Traceback …
Run Code Online (Sandbox Code Playgroud)

python stack-trace python-3.x

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

ValueError:exog 没有完整的列排名

我正在PanelOLSlinearmodels包中运行一个。

与经常发生的情况一样,缺少一些观察结果。当我在R(我认为等效命令是plm)中运行等效命令时,我得到以下信息:

Unbalanced Panel: n=11, T=17-61, N=531
Run Code Online (Sandbox Code Playgroud)

所以面板是不平衡的:有些人只有 17 个时间段的完整数据,而其他人则有更多。但是回归仍然运行。

等效的python命令是:

import linearmodels.panel as pnl
model = pnl.PanelOLS.from_formula(formula, data=src)
Run Code Online (Sandbox Code Playgroud)

这给了我一个警告:

输入包含缺失值。删除缺少观察的行。

还有一个错误:

MyPythonInstallation\lib\site-packages\linearmodels\panel\model.py in _validate_data(self)
    207 
    208         if matrix_rank(x) < x.shape[1]:
--> 209             raise ValueError('exog does not have full column rank.')
    210         self._constant, self._constant_index = has_constant(x)
    211 

ValueError: exog does not have full column rank.
Run Code Online (Sandbox Code Playgroud)

我该如何继续我的回归?

python linearmodels

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

配置 microk8s 使用 ~/.kube/config

我已经添加了我~/.kube/config做的时候没有出现的东西:

microk8s.kubectl config view
Run Code Online (Sandbox Code Playgroud)

我想使用带有默认配置文件位置的 Microk8s。

这可能吗?

kubernetes microk8s

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

插入整数列时不要静默舍入浮点输入

我有一张像:

CREATE TABLE foo(bar int)
Run Code Online (Sandbox Code Playgroud)

我有一个将值插入该表的脚本:

INSERT INTO foo(bar)
VALUES (1), (2), (3.2)
Run Code Online (Sandbox Code Playgroud)

浮点值被静默四舍五入以适合数据类型:

> SELECT * FROM foo;
 bar
-----
   1
   2
   3
(3 rows)
Run Code Online (Sandbox Code Playgroud)

Postgres 是否有任何内置功能可以防止这种情况发生,而是引发错误?(甚至是警告?)

postgresql postgresql-12

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

设置 Celery 工作日志级别

在 Celery 4.1.0 版本中,有一个--loglevel标志用于设置 Celery Worker 的日志级别。

这适用于类似的事情celery -A myapp worker --loglevel INFO.

但是,从版本 5.0.2 开始,此标志已从文档中删除。

截至目前,如果我谷歌“Celery工人设置日志级别”,我会得到Celery源代码的链接,以及假设它存在的这个SO问题的链接。

那么现在如何设置 Celery Worker 的日志级别呢?

celery

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

从 DataFrame 字典创建一个 DataFrame

我有一个 DataFrames 字典,其中的键被认为是有意义的:

In [32]: x = pd.DataFrame(dict(foo=[1,2,3], bar=[4,5,6])).set_index('foo')
In [33]: y = pd.DataFrame(dict(foo=[7,8,9], bar=[10,11,12])).set_index('foo')
In [34]: z = dict(x=x, y=y)
Run Code Online (Sandbox Code Playgroud)

看起来像:

In [43]: x
Out[43]: 
     bar
foo     
1      4
2      5
3      6

In [44]: y
Out[44]: 
     bar
foo     
7     10
8     11
9     12
Run Code Online (Sandbox Code Playgroud)

有没有一种很好的方法来获得以下数据帧:

    foo  bar
x   1    4
    2    5
    3    6
y   7    10
    8    11
    9    12
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
1446
查看次数