我需要生成一个仅包含大写英文字母的三元组列表:
["AAA","AAB","AAC", ..., 'ZZZ']
Run Code Online (Sandbox Code Playgroud)
在python中执行此操作的最快方法是什么?
看下面的代码:
import requests
import grequests
import requests_cache
requests_cache.install_cache('bla')
urls = [
'http://www.heroku.com',
'http://python-tablib.org',
'http://httpbin.org',
'http://python-requests.org',
'http://kennethreitz.com'
]
rs = (grequests.get(u) for u in urls)
results = grequests.map(rs)
Run Code Online (Sandbox Code Playgroud)
我希望执行此操作后,我将bla.sqlite在当前目录中找到文件并执行
results = grequests.map(rs)
Run Code Online (Sandbox Code Playgroud)
因为数据将从sqlite缓存中获取,所以速度会更快。不幸的是,这是不正确的,根本没有创建文件,也没有加速。当我使用grequests insetead的请求时,一切正常。因此,问题是标题说:可以使grequest和request_cache一起工作吗?如果是的话,如何?
我以为这个程序将逐行回显我的控制台输入:
import os, sys
for line in sys.stdin:
print line
Run Code Online (Sandbox Code Playgroud)
不幸的是,它等待EOF(Ctrl+ D)然后产生输出.我应该如何修改我的程序以逐行获取输出?
django核心代码片段:
class ForeignKey(RelatedField, Field):
...
def db_type(self, connection):
rel_field = self.rel.get_related_field()
if (isinstance(rel_field, AutoField) or
(not connection.features.related_fields_match_type and
isinstance(rel_field, (PositiveIntegerField,
PositiveSmallIntegerField)))):
return IntegerField().db_type(connection=connection)
return rel_field.db_type(connection=connection)
Run Code Online (Sandbox Code Playgroud)
这段代码非常糟糕,因为如果我定义了一个继承自的自定义字段AutoField,那么我的db_type方法将被忽略.
我想做的是隐藏我的类是一个实例的事实AutoField.在C++中,我会通过私有继承来实现.
有没有办法欺骗isinstance返回False或隐藏继承?
我的cutom字段代码:
class MyAutoField(models.AutoField):
def __init__(self, length, *args, **kwargs):
self.length = length
super(MyAutoField, self).__init__(*args, **kwargs)
def db_type(self, connection):
if connection.vendor == 'oracle':
return 'NUMBER(%s,0)' % (self.length)
if connection.vendor == 'postgresql':
if self.length <= 4:
return 'smallint'
if self.length <= 9:
return 'integer'
return 'bigint'
return …Run Code Online (Sandbox Code Playgroud) 我想从文本中获取最相关的单词以准备标签云.
我使用scikit-learn包中的CountVectoriser:
cv = CountVectorizer(min_df=1, charset_error="ignore",
stop_words="english", max_features=200)
Run Code Online (Sandbox Code Playgroud)
这很好,因为它给了我的话和频率:
counts = cv.fit_transform([text]).toarray().ravel()
words = np.array(cv.get_feature_names())
Run Code Online (Sandbox Code Playgroud)
我可以过滤非频繁的单词:
words = words[counts > 1]
counts = counts[counts > 1]
Run Code Online (Sandbox Code Playgroud)
以及单词,即数字:
words = words[np.array(map(lambda x: x.isalpha(), words))]
counts = counts[np.array(map(lambda x: x.isalpha(), words))]
Run Code Online (Sandbox Code Playgroud)
但它仍然不完美......
我的问题是:
还请注意:
我想以与标准CAPTCHA禁用字体相同的方式分解一些图像.我如何在python中实现它?我应该使用哪些库/算法?任何概念验证?
免责声明:在我提出这个问题之前,谷歌搜索了一段时间,但我找不到任何令人满意的答案.我是新手,所以我不能提供任何证明我'研究工作'的代码......
我有以下项目列表(键值对):
items = [('A', 1), ('B', 1), ('B', 2), ('C', 3)]
Run Code Online (Sandbox Code Playgroud)
我想得到什么:
{
'A' : 1,
'B' : [1,2]
'C' : 3
}
Run Code Online (Sandbox Code Playgroud)
我的天真的解决方案:
res = {}
for (k,v) in items:
if k in res:
res[k].append(v)
else:
res[k] = [v]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一些优化的更多 pythonic 解决方案,有人吗?
想象一下,我有一个Snippet和一个Page包含它:
@register_snippet
class MySnippet(models.Model):
content = models.CharField(max_length=255)
class MyPage(Page):
snippet = models.ForeignKey('MySnippet', null=True, blank=True, on_delete=models.SET_NULL, related_name='+')
api_fields = [
APIFiled('snippet')
]
Run Code Online (Sandbox Code Playgroud)
现在在 wagtail API 页面端点中,此页面将如下所示:
{
"id": 1,
"meta": { ... },
"snippet": {
"id": 1,
"meta": {
"type": "my_module.MySnippet"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能使此端点显示代码段的内容?
另外,如何仅为片段创建单独的 API 端点?
我有一个带有'insert_date'列的表格X. 此列为od类型DATE,并且只包含所有记录的一个值:"17-JAN-13".我希望以下查询根本不返回任何结果:
SELECT insert_date
FROM X
WHERE ("X"."INSERT_DATE" IS NOT NULL
AND NOT (("X"."INSERT_DATE" = to_date('2013-01-17', 'yyyy-mm-dd')
)))
Run Code Online (Sandbox Code Playgroud)
但我得到的却是很多"17-JAN-13"的记录.我的查询有什么问题?
请不要将此问题移至 askubuntu,因为我认为此问题不是特定于操作系统的。
当我调用createuserpostgres 命令时(现在我是否提供任何参数都没有关系),我收到了这个错误:
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)
通常这意味着 postgres 服务器已关闭,但这次不是:
pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
sudo service postgresql status
9.4/main (port 5432): online
Run Code Online (Sandbox Code Playgroud)
但确实没有/tmp/.s.PGSQL.5432文件,因为我的配置文件(/etc/postgresql/9.4/main/postgresql.conf)有这一行:
unix_socket_directories = '/var/run/postgresql'
Run Code Online (Sandbox Code Playgroud)
所以我真的不明白为什么createuser要访问/tmp/.s.PGSQL.5432?可以将此路径硬编码到createuser二进制文件中吗?我看不出有任何命令行参数来指定设置文件的位置createuser …
python ×8
algorithm ×2
database ×2
django ×2
base ×1
base64 ×1
caching ×1
captcha ×1
createuser ×1
data-mining ×1
dictionary ×1
echo ×1
gevent ×1
nltk ×1
oracle ×1
orm ×1
postgresql ×1
request ×1
scikit-learn ×1
select ×1
sql ×1
stdin ×1
text-mining ×1
wagtail ×1