小编Way*_*ner的帖子

如何在grok/logstash中匹配换行符?

我有一个远程机器,它结合了多行事件并通过伐木工人协议发送它们.

是什么东西看起来像这样:

{
     "message" => "2014-10-20T20:52:56.133+0000 host 2014-10-20 15:52:56,036 [ERROR   ][app.logic     ] Failed to turn message into JSON\nTraceback (most recent call last):\n  File \"somefile.py", line 249, in _get_values\n    return r.json()\n  File \"/path/to/env/lib/python3.4/site-packages/requests/models.py\", line 793, in json\n    return json.loads(self.text, **kwargs)\n  File \"/usr/local/lib/python3.4/json/__init__.py\", line 318, in loads\n    return _default_decoder.decode(s)\n  File \"/usr/local/lib/python3.4/json/decoder.py\", line 343, in decode\n    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n  File \"/usr/local/lib/python3.4/json/decoder.py\", line 361, in raw_decode\n    raise ValueError(errmsg(\"Expecting value\", s, err.value)) from None\nValueError: Expecting value: line 1 column 1 (char 0), …
Run Code Online (Sandbox Code Playgroud)

regex logstash logstash-grok

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

如何在pandas中创建sum行和sum列?

我正在通过可汗学院的统计学课程作为我大学时代的一些复习,并且作为一种让我快速掌握大熊猫和其他科学Python的方法.

我有一张来自可汗学院的桌子:

             | Undergraduate | Graduate | Total
-------------+---------------+----------+------
Straight A's |           240 |       60 |   300
-------------+---------------+----------+------
Not          |         3,760 |      440 | 4,200
-------------+---------------+----------+------
Total        |         4,000 |      500 | 4,500
Run Code Online (Sandbox Code Playgroud)

我想用pandas重新创建这个表.当然,我可以使用类似的东西创建一个DataFrame

"Graduate": {...},
"Undergraduate": {...},
"Total": {...},
Run Code Online (Sandbox Code Playgroud)

但这似乎是一种天真的方法,既快速挫败,又不是真正可扩展的.

我有这样的非总计部分:

df = pd.DataFrame(
    {
        "Undergraduate": {"Straight A's": 240, "Not": 3_760},
        "Graduate": {"Straight A's": 60, "Not": 440},
    }
)
df
Run Code Online (Sandbox Code Playgroud)

我一直在寻找并发现了一些很有前景的东西,比如:

df['Total'] = df.sum(axis=1)
Run Code Online (Sandbox Code Playgroud)

但我没有发现任何非常优雅的东西.

我确实找到了crosstab看起来应该做我想要的功能,但似乎为了做到这一点,我必须为所有这些值创建一个由1/0组成的数据帧,这看起来很愚蠢,因为我已经已经有一个聚合.

我发现一些方法似乎手动构建一个新的总计行,但似乎应该有一个更好的方法,如:

totals(df, rows=True, columns=True)
Run Code Online (Sandbox Code Playgroud)

或者其他的东西.

这是否存在于熊猫中,还是我必须拼凑自己的方法?

python pandas

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

强制浏览器下载PDF文档而不是打开它

我想让浏览器从服务器下载PDF文档,而不是在浏览器中打开文件.我正在使用C#.

下面是我使用的示例代码.它不工作..

string filename = "Sample server url";
response.redirect(filename);
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

如何在Tkinter应用程序上运行unittest?

我刚刚开始学习TDD,我正在使用Tkinter GUI开发一个程序.唯一的问题是,一旦.mainloop()调用该方法,测试套件就会挂起,直到窗口关闭.

这是我的代码示例:

# server.py
import Tkinter as tk

class Server(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.mainloop()
Run Code Online (Sandbox Code Playgroud)

# test.py
import unittest
import server

class ServerTestCase(unittest.TestCase):
    def testClassSetup(self):
       server.Server()
       # and of course I can't call any server.whatever functions here

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

测试Tkinter应用程序的适当方法是什么?还是只是'不'?

python tdd unit-testing tkinter

19
推荐指数
2
解决办法
6364
查看次数

PermissionError:[Errno 13]权限被拒绝

我收到这个错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1538, in __call__
return self.func(*args)
File "C:/Users/Marc/Documents/Programmation/Python/Llamachat/Llamachat/Llamachat.py", line 32, in download
with open(place_to_save, 'wb') as file:
PermissionError: [Errno 13] Permission denied: '/goodbye.txt'
Run Code Online (Sandbox Code Playgroud)

运行时:

def download():
    # get selected line index
    index = films_list.curselection()[0]
    # get the line's text
    selected_text = films_list.get(index)
    directory = filedialog.askdirectory(parent=root, 
                                        title="Choose where to save your movie")
    place_to_save = directory + '/' + selected_text
    print(directory, selected_text, place_to_save)
    with open(place_to_save, 'wb') as file:
        connect.retrbinary('RETR ' …
Run Code Online (Sandbox Code Playgroud)

windows tkinter permission-denied python-3.x

17
推荐指数
4
解决办法
11万
查看次数

用于Web开发的Git,sub-repos和外部库 - 一劳永逸的最佳策略?

这是一个常见的情况,必须有一个明智的解决方案,但尽管阅读和丰富的Git体操,我的大脑疼痛,我无法做这项工作......

我正在使用Wordpress,尽管这适合大多数网站开发方案.我想用git repo管理站点安装,并且还可以在单​​独的repos中管理各种WP插件,jQuery插件和其他代码位,这些插件可以很容易地从外部源拉出/推送.在你看细节之前看起来很简单......

标准

"子文件夹"标准 不应将每个插件的文件夹绑定到其源库的根文件夹.许多repos有多个嵌套文件夹,例如"my-repo-name/...","dev /","test /","src /",其中后者的内容是所需的东西.这对于保持引用URL清洁并最大限度地减少公共垃圾很重要.

"无Proxys"标准 理想的解决方案不需要额外的中间分支或回购.将更改推送到插件的外部源应该很简单,不需要多次中间合并/推送.

"真实文件"标准 理想情况下,整个网站的外部存储库实际上应该包含插件子项目的文件(即没有"子模块").虽然我可以被说服远离这一个...

"发布"标准 它必须与rsync和/或git push'ing到现场服务器很好地兼容

我看过这五个解决方案

Git子模块简单到足以进行更改和推/拉但子模块在"子文件夹"和"实际文件"标准上失败

Git read-tree/subtree merge解决了"Real Files"问题,read-tree实际上让你引用了一个分支的子文件夹但是当我这样做并试图合并master上的更改上游时,Git没记住它来自一个子文件夹并且合并了master的整个结构进入ext libs跟踪分支...所以FAIL就这个标准.

Apenwarrs子树扩展(这里) 非常适合"真实文件"标准,并且相当简单的推/拉,直到您想要强制执行"子文件夹"规则.最好它似乎需要中间分支,您可以从远程跟踪分支中分离出所需的文件夹,然后将其作为子树添加到主分支.我没有太多运气将主人的变化合并/推送回源回购.我仍然认为这里可能存在......

与外部repo的符号链接 很好的解决方案,直到GIT在符号链接后停止.现在它失败了"真实文件"和"发布"标准

嵌套repos 在某处我看到了一个SO答案,如果你明确git add一个包含另一个repo并包含尾部斜杠的文件夹,git将不会对其进行子模块,而是跟踪单个文件.这似乎很有希望,但它在"子文件夹"标准上失败了.

接下来是什么?

我已经看到了"稀疏结账"的提法 - 或许是涉及分支修剪的事情.我希望避免一个涉及shell脚本的解决方案,或者是如此复杂以至于每次都要重新学习它(不经常)我会对插件进行更改.它需要比为每个插件维护一个单独的repo并从主CMS安装中来回复制更容易.

当然有人有一个简单的功能方式来使这个常见的开发场景工作?在此先感谢您的帮助...

git plugins content-management-system git-submodules

16
推荐指数
1
解决办法
936
查看次数

.NET DateTime中的空值是否保证小于实际值?

也许我的Google-Fu让我失望了,但是我无法确定在.NET中比较一个可空的内容是否总是比其他内容少.

我有一些类似的代码

MyClass findLatest(List<MyClass> items){
    DateTime? latest_tstamp = null;
    MyClass latest_item = null;
    foreach(var item in items){
        if (latest_tstamp < item.tstamp){
            latest_tstamp = item.tstamp;
            latest_item = item;
        }
    }
    return latest_item;
}
Run Code Online (Sandbox Code Playgroud)

它似乎适用于我尝试的几个有限的案例(当然也item.tstamp被宣布DateTime? tstamp).

这是保证的行为吗?

结论(?)

根据答案(以及Jon Skeet的[另一个问题的答案]),我已经进行了以下检查:

if (item.tstamp != null &&
    (latest_tstamp == null || latest_tstamp < item.tstamp)){
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

.net nullable

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

如何在SQLAlchemy中实现空合并运算符?

或者我该如何使这个东西工作?

我有一个Interval对象:

class Interval(Base):
    __tablename__ = 'intervals'
    id = Column(Integer, primary_key=True)
    start = Column(DateTime)
    end = Column(DateTime, nullable=True)
    task_id = Column(Integer, ForeignKey('tasks.id'))

@hybrid_property #used to just be @property
def hours_spent(self):
    end = self.end or datetime.datetime.now()
    return (end-start).total_seconds()/60/60
Run Code Online (Sandbox Code Playgroud)

一个任务:

class Task(Base):
    __tablename__ = 'tasks'
    id = Column(Integer, primary_key=True)
    title = Column(String)
    intervals = relationship("Interval", backref="task")

@hybrid_property  # Also used to be just @property
def hours_spent(self):
    return sum(i.hours_spent for i in self.intervals)
Run Code Online (Sandbox Code Playgroud)

当然,添加所有典型的设置代码.

现在,当我尝试做 session.query(Task).filter(Task.hours_spent > 3).all()

NotImplementedError: <built-in function getitem> …

python sqlalchemy null-coalescing-operator

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

是否有使用Python的Pathlib添加扩展的惯用方法?

我正在使用Python的Pathlib,我想采取类似的东西

p = Path('/path/to/foo')
Run Code Online (Sandbox Code Playgroud)

然后尝试几种不同的扩展.我可以

for ext in ['.txt', '.md', '.note']
    filename = Path(str(p) + ext)
Run Code Online (Sandbox Code Playgroud)

但这感觉有点尴尬.有一个更好的方法吗?

python python-3.x pathlib

14
推荐指数
2
解决办法
2086
查看次数

Python和C之间的性能差异

在不同的项目上工作,只要任务完成,我就可以选择不同的编程语言.

我想知道在Python中编写程序与在C中编写程序之间在性能方面的真正区别是什么.

要完成的任务是多种多样的,例如排序文本文件,磁盘访问,网络访问,文本文件解析.

例如,在C与Python中使用相同的算法排序文本文件之间是否存在明显的差异?

根据您的经验,考虑到当前CPU(i7)的强大功能,它是否真的是一个显着的差异(考虑到它的程序不会让系统瘫痪).

谢谢!:)

c python performance

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