小编Nik*_*ach的帖子

Pycurl和io.StringIO - pycurl.error:(23,'写体失败)

我正在将ebay sdk移植到python3,我偶然发现了以下问题.

我正在使用pycurl发送一些HTTP请求.这是我配置它的方式:

    self._curl = pycurl.Curl()
    self._curl.setopt(pycurl.FOLLOWLOCATION, 1)
    self._curl.setopt(pycurl.URL, str(request_url))
    self._curl.setopt(pycurl.SSL_VERIFYPEER, 0)

    self._response_header = io.StringIO()
    self._response_body = io.StringIO()

    self._curl.setopt(pycurl.CONNECTTIMEOUT, self.timeout)
    self._curl.setopt(pycurl.TIMEOUT, self.timeout)

    self._curl.setopt(pycurl.HEADERFUNCTION, self._response_header.write)
    self._curl.setopt(pycurl.WRITEFUNCTION, self._response_body.write)
Run Code Online (Sandbox Code Playgroud)

当我调用self._curl.perform()时,我收到以下错误:

pycurl.error: (23, 'Failed writing body (1457 != 1460)')
Run Code Online (Sandbox Code Playgroud)

据我所知,这意味着写函数存在问题,但我无法弄清楚究竟是什么.可能与从StringIO模块迁移到io有关,但我不确定.

UPD:我尝试过以下方法:

    def body(buf):
        self._response_body.write(buf)

    def header(buf):
        self._response_header.write(buf)

    self._curl.setopt(pycurl.HEADERFUNCTION, header)
    self._curl.setopt(pycurl.WRITEFUNCTION, body)
Run Code Online (Sandbox Code Playgroud)

它的工作原理.我试图用lambdas做同样的技巧(而不是定义那些笨拙的功能,但它没有用.

python curl pycurl stringio python-3.x

12
推荐指数
1
解决办法
8032
查看次数

Python doctest异常

所以,我正在尝试将一个例外与doctest相匹配.

>>> api = Api("foo", "bar") # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
AuthError
Run Code Online (Sandbox Code Playgroud)

问题是这适用于py2.7但不适用于python 3.异常跟踪的格式已经改变,现在它包含完整的模块名称.即在python 3中,我有package.module.AuthError.

有没有办法匹配两者?好像IGNORE_EXCEPTION_DETAIL在这里没有效果.

python doctest exception python-2.7 python-3.x

8
推荐指数
1
解决办法
560
查看次数

对私有 RESTful API 进行逆向工程?

有没有办法对私有 RESTful API 进行逆向工程?

比如说,我有一个使用此 API 的网站,并且我能够找出该 API 的一些访问点 URL。现在,对于这些 url,我需要弄清楚它会排除哪个 JSON 有效负载。有没有一种有条不紊的方法来做到这一点?

api rest json reverse-engineering

7
推荐指数
1
解决办法
7875
查看次数

在Python 3中发送多个HTTP请求的最佳方法是什么?

这个想法很简单:我需要并行发送多个HTTP请求.

我决定使用requests-futures库,它基本上产生了多个线程.

现在,我有大约200个请求,它仍然很慢(在我的笔记本电脑上大约需要12秒).我也使用回调来解析响应json(如库文档中所建议的).此外,是否有一个经验法则可以根据请求数量确定最佳线程数,是否有?

基本上,我想知道我是否可以进一步加快这些要求.

python concurrency multithreading http python-3.x

7
推荐指数
1
解决办法
6019
查看次数

Redis:获取所有哈希值的最佳方法

我目前在Redis表中存储大约50k个哈希值,每个哈希值都有5个键/值对.每天一次我运行批处理作业来更新哈希值,包括将一些键值设置为哈希中另一个键的值.

这是我的python代码,它遍历键并将old_code设置为new_code,如果给定哈希值存在new_code值:

pipe = r.pipeline()

for availability in availabilities:
    pipe.hget(availability["EventId"], "new_code")

for availability, old_code in zip(availabilities, pipe.execute()):
    if old_code:
        availability["old_code"] = old_code.decode("utf-8")

for availability in availabilities:
    if "old_code" in availability:
        pipe.hset(
            availability["EventId"], "old_code", availability["old_code"])
    pipe.hset(availability["EventId"], "new_code", availability["MsgCode"])
pipe.execute()
Run Code Online (Sandbox Code Playgroud)

我有点奇怪,我必须两次迭代键才能达到相同的结果,有没有更好的方法呢?

我想弄清楚的另一件事是如何获得具有最佳性能的所有哈希值.以下是我目前的工作方式:

d = []
pipe = r.pipeline()
keys = r.keys('*')
for key in keys:
    pipe.hgetall(key)
for val, key in zip(pipe.execute(), keys):
    e = {"event_id": key}
    e.update(val)
    if "old_key" not in e:
        e["old_key"] = None
    d.append(e)
Run Code Online (Sandbox Code Playgroud)

所以基本上我keys *然后迭代HGETALL所有键来获取值.这太慢了,尤其是迭代.有更快的方法吗?

python database hash redis

7
推荐指数
1
解决办法
2837
查看次数

Bootstrap 3:如何控制输入组内的输入宽度?

http://jsfiddle.net/7T9r9/为例.

<li>
  <span class="row">
    <div class="col-md-3">
      <div class="input-group">
        <span class="input-group-addon">
          <input type="checkbox" class="checkbox"/>
        </span>
        <input type="text" class="form-control input-append" value="test">
        <span class="input-group-addon"></span>
      </div>
    </div>
    <div class="col-md-9">
      <div class="input-group">
        <input type="text" class="form-control"
               value="test">
        <span class="input-group-addon">
            <a href="#">
              <span class="glyphicon glyphicon-trash"></span>
            </a>
        </span>
      </div>
    </div>
  </span>
</li>
Run Code Online (Sandbox Code Playgroud)

我想要实现的是让第一个输入宽度适合它内部的文本(固定宽度也可以,我猜).第二个输入应占据行的其余部分,所有元素应位于同一行.

有没有办法做到这一点?

html css twitter-bootstrap twitter-bootstrap-3

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

Django REST Framework:将数据记录访问权限限制为创建它们的用户

我试图弄清楚,使用Django管理模型访问权限的最佳方法是什么。

我有一个属于创建它们的用户的项目表。所有项目都通过RESTful API进行管理。使用此API时,我想限制对给定用户创建的项目的访问。

我必须创建多个表还是仅用一个表就可以实现相同的目的?如果必须使用多个表,如何将API请求与特定表相关联?

django database-permissions user-permissions django-rest-framework

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

为什么STL算法find()在地图上不起作用?

是否有任何解释为什么find()算法不适用于地图,而且必须使用map :: find?

c++ stl map

2
推荐指数
1
解决办法
3424
查看次数

Facebook Graph API:获得所有朋友的喜欢

我并不特别喜欢用"我/朋友"获取朋友列表,然后在列表中迭代以获得具有'%id%/ likes'的特定朋友的喜欢 - 这需要很长时间.

有没有办法在单个API调用中批量查询用户的朋友?

谢谢.

facebook facebook-graph-api

2
推荐指数
1
解决办法
6042
查看次数

有没有办法覆盖-webkit-filter:在子元素中模糊?

我正在尝试将我的元素显示在图像背景的顶部并应用模糊.

请参阅http://jsfiddle.net/calder12/Yr2zD/以获取参考.

<body>
<div class="bgImageContainer"></div>
<div class="content"> Some text and stuff here</div>
</body>
Run Code Online (Sandbox Code Playgroud)

现在,我认为第二个div应该嵌套在第一个div中.但随后内容也变得模糊,我无法找到一种方法来禁用"内容"元素中的模糊.有办法吗?

html css webkit css3

2
推荐指数
1
解决办法
4325
查看次数