当我尝试遵循与Python编码相关的Python Wiki示例时:
>>> import urllib
>>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
>>> f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params)
>>> print f.read()
Run Code Online (Sandbox Code Playgroud)
第二行引发错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'urlencode'
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我们有一个大型项目,它使用.NET Framework来显示表单/窗口.最近我决定弃用CLR依赖并转移到Qt.
在学习Qt时,我们已经从Visual Studio 2013迁移到2015,然后我注意到vs2015使用的MSVC 14版本没有qt支持.
此外,Qt vs addin还没有使用我们使用的jn visual studio express/community edition.我有没有机会在我们的项目中使用Qt和qt addin?
搜索网络没有帮助,看起来没有人使用Qt与最新的Visual Studio?
我现在遇到了一个奇怪的问题,即我正在开发的Chrome扩展程序发送http请求(普通的JavaScript).这是一个带有XmlHttpRequest(from )的POST请求,其中包含以下URL:background.js
http://host.com/postform/upload
Run Code Online (Sandbox Code Playgroud)
我也从普通网页(不是chrome扩展名)发送此请求,重要的是,如果我打开开发人员工具并检查我的请求的网络选项卡(选择原始标题显示),我会看到第一个标题:
POST /postform/upload HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
它在我启用代理而不是直接连接之前工作正常.我在我的Ubuntu上使用squid3.使用代理时请求之间只有一个不同之处 - 它使HTTP服务器返回404找不到 - 仅在使用代理时...
当我强制Chrome使用基于squid3的代理时(我在我的Chrome扩展程序中使用PAC脚本),我的请求将无效.我检查了很多次,尽我所能减少请求体的任何差异,而我现在剩下的就是第一个头.
在使用代理激活的请求发送时(从开发人员工具的网络选项卡,从后台页面打开),它看起来像这样:
POST http://host.com/postform/upload HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
我尝试过使用chome.webRequest.onBeforeSendHeaders API,但这没有帮助.我还尝试从XmlHttpRequest.open中的 URL中删除主机名,但这没有帮助.
是的,我在任何情况下都会发送正确的Host和Origin标头.这可能是我的squid3配置中的问题,或者我应该在我的javaScript中更改什么?
UPDATE 现在意识到squid不是问题,问题是POST请求包含FULL uri(http:// ..)而不是"path".GET工作正常.这太痛苦了.
我不能使用iframe变通办法.我的问题是什么?
每个XML元素<title />都有一个名称 - "title".我使用foreach枚举XNode.Nodes()方法提供的项目,并按标记名称处理每个项目.
我将XNode转换为XElement,以访问XElement.Name.LocalName属性以获取标记名称,如"title".
foreach(XElement as_element in doc.Nodes())
Run Code Online (Sandbox Code Playgroud)
我尝试解析此标记后出现问题:
<title>"Some text"</title>
Run Code Online (Sandbox Code Playgroud)
现在它的类型是XText(:XNode),我无法将其强制转换为XElement.我得到一个InvalidCastException.我怎样才能获得XNode的"名字"?
码:
from html.parser import HTMLParser
Run Code Online (Sandbox Code Playgroud)
Traceback(最近一次调用最后一次):
File "program.py", line 7, in <module>
from html.parser import HTMLParser
ImportError: No module named 'html.parser'; 'html' is not a package
Run Code Online (Sandbox Code Playgroud)
我叫它 python3 program.py
Python版本:Python 3.4.0
问题是,对于一些上传到python应用程序的档案或文件,它ZipFile会namelist()返回错误解码的字符串.
from zip import ZipFile
for name in ZipFile('zipfile.zip').namelist():
print('Listing zip files: %s' % name)
Run Code Online (Sandbox Code Playgroud)
如何修复该代码,以便我总是解码unicode中的文件名(所以支持Chineeze,俄语和其他语言)?
我已经看到了Python 2的一些示例,但由于字符串的性质在python3中已经改变,我不知道如何重新编码它,或者在其上应用chardet.
我有简单授权和上传API脚本的问题.
授权后,客户端会收到几个cookie,包括PHPSESSID cookie(在浏览器中).
我使用requests.post表单数据的方法进行授权:
r = requests.post(url, headers = self.headers, data = formData)
self.cookies = requests.utils.dict_from_cookieja(r.cookies)
Run Code Online (Sandbox Code Playgroud)
标题仅用于自定义User-Agent.
授权是100%罚款(页面上有一个注销链接).稍后,我尝试使用授权会话cookie上传数据:
r = requests.post(url, files = files, data = formData, headers = self.headers, cookies = self.cookies)
Run Code Online (Sandbox Code Playgroud)
但网站拒绝了该请求.如果我们比较来自脚本和谷歌浏览器的请求(使用Wireshark),请求正文中没有差异.
唯一的区别是请求类发送的2个 cookie,而谷歌Chrome发送7个.
更新:双重检查,第一个请求收到7个cookie.post方法只是忽略了一半......
python cookies multipartform-data python-3.x python-requests
在 PHP 中,给定一个字符串值(由字符分隔的整数),我们可以计算它的整数表示形式:
$hashable = "123A123"; // notice "A" delim
$hash_int = base_convert($hashable, 11, 10);
echo $hash_int;
Run Code Online (Sandbox Code Playgroud)
输出
2151042
Run Code Online (Sandbox Code Playgroud)
它很有用,因为结果对于大范围的字符串(当然是短字符串)来说是唯一的。我在我的应用程序中使用它来生成 ID。
我们如何在 python 中进行相同的转换?是否可以在 PHP 和 Python 中为相同的字符串生成相等的整数?
也许首先我们需要获取字符串的哈希 int,然后转换整数的基数,但是我们到底如何做到这一点呢?hashable
当您在现代写作网站中插入链接时,它们通常会显示页面预览而不是链接(如果段落中没有周围的文本)。
当我在我的 jekyll 网站上添加一些帖子链接时,我想要同样的体验,这是一种呈现他们预览的方式。
这对读者来说非常方便。有时预览错误地称为“嵌入”。
有没有办法在 Jekyll 页面/帖子中根据Open Graph 协议生成带有文本/图像预览的“预览卡” ?
是否可以使用boost:hash函数生成像MD5一样固定长度的文件内容哈希?
有没有快速的解决方案?
如果没有,最简单的方法是什么?