小编Shm*_*ikA的帖子

SSL ConnectionResetError来自何处?

TL; DR

其中负责的代码-我的问题很简单,提高 ConnectionResetError对cpython3以下调用self._sslobj.read(len, buffer)ssl.py

背景

我有时候ConnectionResetError尝试用ssl连接S3.这个错误很少发生,所以重现它很棘手.

# trimmed stacktrace
File "/MYPROJECT/MY_FUNC.py", line 123, in <genexpr>
rows = (row for row in reader)
File "/XXX/lib/python3.6/csv.py", line 112, in _next_
row = next(self.reader)
File "/XXX/lib/python3.6/tarfile.py", line 706, in readinto
buf = self.read(len(b))
File "/XXX/lib/python3.6/tarfile.py", line 695, in read
b = self.fileobj.read(length)
File "/XXX/lib/python3.6/gzip.py", line 276, in read
return self._buffer.read(size)
File "/XXX/lib/python3.6/_compression.py", line 68, in readinto
data = self.read(len(byte_view))
File "/XXX/lib/python3.6/gzip.py", line 469, in …
Run Code Online (Sandbox Code Playgroud)

python exception-handling python-3.x

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

convert io.StringIO to io.BytesIO

original question: i got a StringIO object, how can i convert it into BytesIO?

update: The more general question is, how to convert a binary (encoded) file-like object into decoded file-like object in python3?

the naive approach i got is:

import io
sio = io.StringIO('wello horld')
bio = io.BytesIO(sio.read().encode('utf8'))
print(bio.read())  # prints b'wello horld'
Run Code Online (Sandbox Code Playgroud)

is there more elegant way of doing this?

for example, for the reverse question (BytesIO -> StringIO) there exist a class - io.TextIOWrapper …

python io encoding stream python-3.x

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

如何序列化请求Response对象为HAR

我想将请求 Response对象序列化为json,最好是HAR格式。

import requests
resp = requests.get('http://httpbin.org/get')

har = to_har(resp)  # <--- magic
Run Code Online (Sandbox Code Playgroud)

但是用我的Google Fu功能在网上找不到任何东西。

似乎所有数据都存在于该Response对象上,我希望我不需要实现整个HAR规范,并且存在一些可以重用的代码/实用程序。

一个有效的答案可能是:现有的库,或者如果python和和/或到目前为止都不存在,请参考起点requests

当前,我对Response对象的3min解决方案(不是HAR格式)更简单的序列化看起来像这样(如果不存在,可能是一个很好的起点):

def resp2dict(resp, _root=True):
    d = {
        'text': resp.text,
        'headers': dict(resp.headers),
        'status_code': resp.status_code,
        'request': {
            'url': resp.request.url,
            'method': resp.request.method,
            'headers': dict(resp.request.headers),
        },
    }

    if _root:
        d['history'] = [resp2dict(h, False) for h in resp.history]
    return d
Run Code Online (Sandbox Code Playgroud)

我之所以发表此文章,是因为我认为Response,无论HAR格式如何,我不仅会努力将对象序列化为json。

python serialization python-3.x python-requests har

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

多次调用 dictConfig 是不好的做法吗?

我使用的logging.config.dictConfig()设置登录到文件中使用FileHandlerRotatingFileHandlerdictConfig()多次打电话是不好的做法吗?如果是为什么?

python logging python-2.7 python-3.x

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

在python上实现查询语言

我正在寻找一种方法来向其他开发人员和可选的客户公开我工作场所的过滤功能。

问题

我想基于向我的其他开发人员以及后来向我们的客户公开的用户定义过滤器,对我的数据(python dicts)实现一种简单的查询语言。

  • 语言应该足够简单以供非开发人员使用
  • 足够安全以避免在我的服务器上远程执行代码
  • 表达能力足以查询如下示例中的数据

在我的 dict / json 数据上公开 SQL 接口会很棒(我不想设置服务器)

示例场景

db = [
  {'first': 'john', 'last': 'doe', 'likes': ['cookies', 'http']},
  {'first': 'jane', 'last': 'doe', 'likes': ['cookies', 'donuts']},
  {'first': 'danny', 'last': 'foo', 'likes': ['http', 'donuts']},
]

query = '(first == "john" or last == "doe") and likes contains "cookies"'
results = run_query(db, query)
Run Code Online (Sandbox Code Playgroud)

这应该返回(在结果中):

[
  {'first': 'john', 'last': 'doe', 'likes': ['cookies', 'http']},
  {'first': 'jane', 'last': 'doe', 'likes': ['cookies', 'donuts']},
]
Run Code Online (Sandbox Code Playgroud)

注意:我不介意更改运算符名称,例如or -> OR contains …

python json abstract-syntax-tree python-3.x

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

在生产中每晚使用 Rust

有人可以向我解释 Rust 每晚的“生产”情况吗?

我想使用PyO3板条箱,它使用需要夜间 Rust的专业化功能。

使用 Rust 的每晚版本是否已做好生产准备?我知道事情可能会在未来的版本中出现问题,并且可能会引入 API 更改,但就质量/测试/生产准备而言,每晚是否安全?

这个关于 Rust 用户的线程看来,只要我限制我的非稳定功能的使用(例如,仅限于专业化),我应该没问题?

production rust

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

删除词汇表TF-IDF中单个出现的单词

我试图删除在我的词汇中出现一次的单词以减少我的词汇量.我正在使用sklearn TfidfVectorizer(),然后在我的数据框上使用fit_transform函数.

tfidf = TfidfVectorizer()  
tfs = tfidf.fit_transform(df['original_post'].values.astype('U')) 
Run Code Online (Sandbox Code Playgroud)

我首先想到的是tfidf矢量化器中的预处理器字段,或者在机器学习之前使用预处理包.

任何进一步实施的提示或链接?

python tf-idf scikit-learn

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

WordNet Python的单词相似度

我试图找到一种可靠的方法来衡量2个术语的语义相似性.第一个度量可以是下义/上位图上的路径距离(最终,2-3个度量的线性组合可能更好......).

from nltk.corpus import wordnet as wn
dog = wn.synset('dog.n.01')
cat = wn.synset('cat.n.01')
print(dog.path_similarity(cat))
Run Code Online (Sandbox Code Playgroud)
  • 我仍然没有得到什么n.01方法,为什么它是必要的.
  • 有一种方法可以直观地显示2个术语之间的计算路径?
  • 我可以使用哪种其他nltk语义指标?

python nlp nltk semantics

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