我想在python中写一个带有逻辑含义的语句.就像是:
if x => y:
do_sth()
Run Code Online (Sandbox Code Playgroud)
当然,我知道我可以使用:
if (x and y) or not x:
do_sth()
Run Code Online (Sandbox Code Playgroud)
但是在python中有这个逻辑运算符吗?
我想通过HTTP协议下载文件urllib3.我已设法使用以下代码执行此操作:
url = 'http://url_to_a_file'
connection_pool = urllib3.PoolManager()
resp = connection_pool.request('GET',url )
f = open(filename, 'wb')
f.write(resp.data)
f.close()
resp.release_conn()
Run Code Online (Sandbox Code Playgroud)
但我想知道这样做的正确方法是什么.例如,它适用于大文件,如果没有做什么,使这个代码更容易容忍和可扩展.
注意.对我来说,重要的是不要使用urllib3库urllib2,因为我希望我的代码是线程安全的.
那么我知道PowerShell 中的 virtualenv 吗?问题,特别是这个答案,说明您需要激活的只是执行
venv/Scripts/activate.ps1
Run Code Online (Sandbox Code Playgroud)
当然需要设置适当的执行策略等。
但我的问题是:如何禁用Power Shell 内激活的 virtualenv?
我试过:
venv/Scripts/deactivate.ps1
Run Code Online (Sandbox Code Playgroud)
和
venv/Scripts/activate.ps1 deactivate
Run Code Online (Sandbox Code Playgroud)
但第一个失败,因为 deactivate.ps1 不存在,第二个没有改变任何内容。
我们假设我们有一个人员表(姓名,姓名,地址,SSN等).
我们想要找到与指定人A"非常相似"的所有行.我想实现某种模糊逻辑比较A和表People中的所有行.将有几个模糊推理规则分别在几个列上工作(例如3个名称的模糊规则,2个姓氏规则,5个地址规则)
问题是以下哪两种方法会更好,为什么?
将所有模糊规则实现为存储过程,并使用一个重的SELECT语句返回与A"非常相似"的所有行.此方法可能包括使用soundex,sim metric等.
实现一个或多个更简单的SELECT语句,返回不太准确的结果,"与A非常相似",然后将A与所有返回的行(数据库外部)进行模糊比较,以获得"非常相似"的行.因此,模糊的比较将在我最喜欢的编程语言中实现.
表人们应该有多达500k行,我想每天制作大约500-1000个这样的查询.我使用MySQL(但这还有待考虑).
我必须使用旧版本(1.8.1)的放心框架。我的所有请求post()或get()从放心调用的请求都会失败,因为我用于测试的服务器具有自签名 SSL 证书。
我知道从 2.2.0 版本开始,设置 ssl 连接很容易使用relaxedHTTPSValidation,例如
given().relaxedHTTPSValidation().when().get("https://some_server.com")
Run Code Online (Sandbox Code Playgroud)
我还在rest-assured wiki上找到了如何处理SSL配置。
但我的问题是在旧版本的放心(1.8.1)中是否可能。
抛出的异常是SSLHandshakeException.
这是我得到的痕迹:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:543)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:409)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:611)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:446) …Run Code Online (Sandbox Code Playgroud) 根据此问题,某些 DBMS 可以回滚 CREATE TABLE 语句。特别是 sqlite 是可能的(尽管它没有记录)。
所以我的问题是,是否可以在 sqlalchemy 中回滚 create_all ?我试图编写一些测试代码,但似乎不起作用:
>>> engine = create_engine('sqlite:///:memory:')
>>> engine
Engine(sqlite:///:memory:)
>>> Session = sessionmaker(bind=engine)
>>> connection = engine.connect()
>>> session = Session(bind=connection)
>>> engine.table_names()
[]
>>> transaction = connection.begin()
>>> Base = declarative_base()
>>> class Test(Base):
... __tablename__ = 'TEST'
... id = Column(Integer, primary_key=True)
...
>>> Base.metadata.bind = engine
>>> Base.metadata.create_all()
>>> engine.table_names()
[u'TEST']
>>> transaction.rollback()
>>> session.close()
>>> connection.close()
>>> engine.table_names()
[u'TEST']
Run Code Online (Sandbox Code Playgroud) 在pyton代码中,我有一个对象的绑定方法.只知道这个绑定方法我想知道该对象的类是什么.可能吗?
这是示例代码:
>>> class x:
... def method(self):
... pass
...
>>> x
<class __main__.x at 0xb737d1ac>
>>> x_instance = x()
>>> x_instance
<__main__.x instance at 0xb737c7cc>
>>> boundmethod = x_instance.method
>>> boundmethod
<bound method x.method of <__main__.x instance at 0xb737c7cc>>
>>> str(boundmethod)
'<bound method x.method of <__main__.x instance at 0xb737c7cc>>'
Run Code Online (Sandbox Code Playgroud)
我们假设我只知道boundmethod.如何判断该类是x什么?
我使用的是solr 4.5。经过几次测试后,我注意到许多失效(不存在)的副本在我的 SolrCloud 图表中显示为消失(黑色)。有什么方法可以强迫我的 solr 忘记这个消失的副本吗?
我认为手动修改zookeeper中的/clusterstate.json节点可能会有所帮助,但尚未尝试。
我创建了以下鼻子测试:
@nottest
def _test_validate_helper_eq(self, input, expected, *args, **kwargs):
result = testedObcject.validatePrice(input, *args, **kwargs)
eq_(result, expected)
def test_validate_price(self):
yield self._test_validate_helper_eq, {}, {'price':'0'}
yield self._test_validate_helper_eq, {}, {'price', -1}, 'price', -1`
Run Code Online (Sandbox Code Playgroud)
validatePrice是测试对象的函数:
def validatePrice(self, input, name = 'price', default_price=0):
...
return validated_input
Run Code Online (Sandbox Code Playgroud)
所以我有一个测试生成器,使用_test_validate_helper_eq函数生成2个测试.还_test_validate_helper_eq函数采用不同数量的参数,并将其传递至validatePrice
首先测试PASS,但第二个测试有问题.正如你所看到的,我正在传递额外的2个参数,name并且default_price.此测试失败,并出现以下错误:AssertionError: {'price': u'-1'} != set(['price', -1])
事实证明,expected参数的值是一个set而不是我定义的字典.我不知道这种转换是由鼻子还是因为*args并且**kwargs被使用.
任何想法是什么以及如何解决它?
python ×5
sql ×2
classname ×1
ddl ×1
dictionary ×1
download ×1
fuzzy-logic ×1
implication ×1
java ×1
math ×1
mysql ×1
nosetests ×1
oop ×1
powershell ×1
rest-assured ×1
rollback ×1
select ×1
set ×1
solr ×1
solrcloud ×1
sqlalchemy ×1
transactions ×1
urllib3 ×1
virtualenv ×1
windows ×1