我正在使用类set()和__hash__方法python来防止在set中添加相同的哈希对象.根据python数据模型文档,set()将相同的哈希对象视为同一个对象,只需添加一次即可.
但它的行为如下:
class MyClass(object):
def __hash__(self):
return 0
result = set()
result.add(MyClass())
result.add(MyClass())
print(len(result)) # len = 2
Run Code Online (Sandbox Code Playgroud)
在字符串值的情况下,它可以正常工作.
result.add('aida')
result.add('aida')
print(len(result)) # len = 1
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么相同的哈希对象在集合中不相同?
我正在使用Python2.7,django==1.7并将uwsgi视频/ mp4文件流式传输到iPhone播放器.
我的代码如下:
def stream(request):
with open('/path/video.mp4', 'r') as video_file:
response = HttpResponse(video_file.read(), content_type='video/mp4')
response['Content-Disposition'] = 'inline; filename=%s' % 'video.mp4'
return response
video_file.close
Run Code Online (Sandbox Code Playgroud)
当我使用一些小视频(小于1MB),它在浏览器中流,但在iPhone palyer我有这个错误:
[uwsgi-http key:127.0.0.1:8008 client_addr:192.168.0.172 client_port:14563] hr_write():Broken pipe [plugins/http/http.c line 564]
当视频大小超过5MB时,它不会同时传输(意味着浏览器和iPhone播放器)同样的错误.
我尝试使用StreamHttpRespose返回chunk chunk,如下所示:
def read(chunksize=8192):
with open('/path/video.mp4', 'rb') as video_file:
byte = video_file.read(chunksize)
while byte:
yield byte
return StreamingHttpResponse(read(), content_type='video/mp4')
Run Code Online (Sandbox Code Playgroud)
但是有同样的错误:Broken pipe.
我可以传输pdf和图像文件.此问题仅适用于mp4文件.而且我还将content_type更改为'video-mpeg',浏览器下载了这个,而我想阻止文件下载.
你有什么想法?任何解决方案!!?
我需要使用输入参数名称SqlServer stored procedure来自python2.7via pyodbc模块.
我根据输入参数顺序的文档尝试:
cursor.execute('{CALL [SP_NAME](?,?)}',
('value', 'value'))
Run Code Online (Sandbox Code Playgroud)
它工作,但我需要通过parameter name of stored procedure因为存储过程输入参数的顺序总是改变.所以我需要通过名字传递它们.
cursor.execute('{CALL [SP_NAME](@param1name,@param2name)}',
('value', 'value'))
Run Code Online (Sandbox Code Playgroud)
但这不起作用.什么是正确的语法?
我可以使用Microsoft.AnalysisServices.dll,使用Python连接到SQL Server Analysis Service ,但现在无法在多维数据集上执行查询。
我尝试过Execute以下方法:
amoServer.Execute('select from finance')
Run Code Online (Sandbox Code Playgroud)
发出Execute方法后,我出现此错误:
<Microsoft.AnalysisServices.XmlaError object at 0x000000000000002B [Microsoft.AnalysisServices.XmlaError]>
Run Code Online (Sandbox Code Playgroud)
注意:我在Windows Server 64Bit上将IronPython与Python 2.7一起使用。
有什么问题?
django ×2
python-2.7 ×2
sql-server ×2
hash ×1
ironpython ×1
pyodbc ×1
python ×1
python-3.x ×1
set ×1
sql ×1
ssas ×1
uwsgi ×1
video ×1