问题列表 - 第7344页

PayPal的Python接口 - urllib.urlencode非ASCII字符失败

我正在尝试实现PayPal IPN功能.基本协议如下:

  1. 客户端从我的站点重定向到PayPal的站点以完成付款.他登录到他的帐户,授权付款.
  2. PayPal在我的服务器上调用一个页面,将详细信息作为POST传递.详细信息包括人员姓名,地址和付款信息等.
  3. 我需要从我的处理页面内部调用PayPal网站上的URL,传回上面传递的所有参数以及另一个名为'cmd'且价值为'_notify-validate'的参数.

当我尝试urllib.urlencode PayPal发送给我的params时,我得到一个:

While calling send_response_to_paypal. Traceback (most recent call last):
  File "<snip>/account/paypal/views.py", line 108, in process_paypal_ipn
    verify_result = send_response_to_paypal(params)
  File "<snip>/account/paypal/views.py", line 41, in send_response_to_paypal
    params = urllib.urlencode(params)
  File "/usr/local/lib/python2.6/urllib.py", line 1261, in urlencode
    v = quote_plus(str(v))
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 9: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我知道urlencode执行ASCII编码,在某些情况下,用户的联系信息可以包含非ASCII字符.这是可以理解的.我的问题是,如何使用urllib2.urlopen(req)(或其他方法)将非ASCII字符编码为POST到URL

细节:

我在PayPal的原始请求中读取了以下内容(GET用于测试):

def read_ipn_params(request):
    if request.POST:  
        params= request.POST.copy()  
        if "ipn_auth" in request.GET:
            params["ipn_auth"]=request.GET["ipn_auth"]
        return params
    else:  
        return request.GET.copy()  
Run Code Online (Sandbox Code Playgroud)

我用来从处理页面向PayPal发回请求的代码是:

def send_response_to_paypal(params):
    params['cmd']='_notify-validate'  
    params …
Run Code Online (Sandbox Code Playgroud)

python unicode paypal urllib urllib2

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

基于Web窗体的Web应用程序URL,没有像stackoverflow.com这样的".aspx"

我想知道是否可以在没有.aspx扩展名的情况下显示Webforms应用程序页面的URL .

对于instace,http://stackoverflow.com/questions/ask而不是http://stackoverflow.com/questions/ask.aspx

asp.net iis

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

kd树是否适合4D空时数据(x,y,z,时间)?

我想使用数据结构来排序时空数据(x,y,z,时间).

目前,处理算法搜索一组4D(x,y,z,时间)点,给定球形(3d)空间半径和线性(1d)时间半径,标记每个点,其他点在这些半径内.原因是在处理之后,我可以在O(1)时间内为所有邻居询问任何4D点.

然而,在空间和时间半径的一些常见配置中,算法的第一次运行大约需要12小时.信不信由你,与我们行业中存在的情况相比,这实际上是快速的.不过,我想帮助加快初始运行,所以我想知道:是一个kd树适合四维时空数据?

请注意,我不是在寻找最近邻搜索或k近邻搜索的实现.

更多信息:

示例数据集具有450,000个4D点.

一些数据集是时间密集的,因此按时间排序肯定会节省处理,但仍会导致许多距离检查.

时间由Excel样式日期表示,典型范围在30,000-39,000(近似值)之间.空间范围有时是较高的值,有时是较低的值,但每个空间坐标之间的范围与时间相似(例如maxX-minX~maxT-minT).

更多信息:

我想如果有人处理过类似的数据集,我会添加一些稍微不相关的数据.

基本上我正在处理表示由多个传感器记录和证实的时空事件的数据.涉及错误,因此仅包括符合错误阈值的事件.

这些数据集的时间跨度介于5到20年的数据之间.

对于真正的旧数据(> 8岁),事件通常非常空间密集,原因有两个:1)当时可用的传感器相对较少,2)传感器放在一起,以便附近的事件可以正常证实了低误差.可以记录更多事件,但它们的错误太高

对于较新的数据(<8岁),事件通常非常时间密集,原因相反:1)通常有许多可用的传感器,以及2)传感器以较大的距离以规则的间隔放置.

因此,通常不能说数据集只是时间密集的或仅是空间密集的(除了仅包含新数据的数据集的情况).

结论

我显然应该在这个网站上提出更多问题.

我将在接下来测试几个解决方案,其中包括4d kd树,3d kd树,然后是时间距离检查(由Drew Hall建议),以及我现有的算法.此外,我还建议了另一种名为TSP(时间空间分区)树的数据结构,它使用八叉树作为空间,每个节点使用一个bsp作为时间,所以我也可以测试它.

假设我记得,我一定会在不同的时间/空间半径配置上发布一些分析基准.

谢谢大家

algorithm math search multidimensional-array data-structures

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

4
推荐指数
1
解决办法
959
查看次数

asp:ImageButton没有触发onclick事件

我有一个页面,它使用母版页,几个RequiredFieldValidators和Web Toolkit自动完成扩展程序.以下代码仅显示页面的最小值:

<%@ Page Language="C#" 
    AutoEventWireup="true"  
    CodeFile="Login.aspx.cs" 
    MasterPageFile="~/master.master" 
    Inherits="Login" %>

<asp:Content id="Content1" 
    contentplaceholderid="ContentPlaceHolder1" 
    runat="server">
    <asp:UpdatePanel ID="pnlUpdate" runat="server">
        <ContentTemplate>
            <div>
                <asp:ImageButton class="submitButton" 
                    imageurl="images/button_submit.gif" 
                    id="btnSubmit" 
                    runat="server" 
                    onclick="btnSubmit_ServerClick"/>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

protected void btnSubmit_ServerClick
      (object sender, ImageClickEventArgs e)
{
    //breakpoint here does not get hit
}
Run Code Online (Sandbox Code Playgroud)

<form runat="server">标签是在母版页.上面的代码不会触发onclick事件.如果我删除母版页并向页面添加表单标记,它就可以工作.是否不支持母版页中的表单标记,或者这应该以某种方式工作? alt text http://digitalcopy.warnerbros.com/images/mainmenu.gif?provider=00079&disc=03403AAA-1D20-47F2-91FA-5EE632832659

asp.net webforms master-pages onclick imagebutton

10
推荐指数
2
解决办法
5万
查看次数

十六进制到十进制转换[K&R练习]

我正在学习C,我无法弄清楚其中一个K&R练习,列表:

练习2-3,编写函数 htoi(s),它将一串十六进制数字(包括一个可选项0x0X)转换为等效的整数值.允许的数字是0通过9,a通过fA 通过F.

我想我需要在这里做一些递归,我只是猜测我对编号类型及其各种转换方法等了解不多.

有人可以给我一些关于如何最好地理解它的指示,我不是在找人握住我的手,而是指导我找到正确理解的方法,这样我就能以最优雅的形式写出来,而不是同 printf("%x", skill);

c kernighan-and-ritchie

6
推荐指数
3
解决办法
3779
查看次数

什么是用户代理?

我看到许多Web开发工具让我改变这个称为"用户代理"的东西.它是什么?

browser user-agent

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

JQuery如果再使用URL解析器插件,必须有一个更优雅的解决方案!

这是我在这个相当狡猾的网站上的第一篇文章,所以如果在其他地方已经讨论过这个问题,我会很容易(如果有的话我找不到它).

我正在使用这里找到的JQuery URL解析器插件:http://projects.allmarkedup.com/jquery_url_parser/

我可以让它做我想要的但是代码效率很低.我有一个隐藏div的集合,在点击相关标题时打开.我正在使用URL解析器,以便如果从另一个页面单击链接,则相关的div是可见的.

我的代码看起来像这样:

if 
(jQuery.url.attr('anchor') == 'question1'){
    $('#answer1').show();
}
else if
(jQuery.url.attr('anchor') == 'question2'){
    $('#answer2').show();
}
else if
(jQuery.url.attr('anchor') == 'question3'){
    $('#answer3').show();
}
else if
(jQuery.url.attr('anchor') == 'question4'){
    $('#answer4').show();
}
else if
(jQuery.url.attr('anchor') == 'question5'){
    $('#answer5').show();
}
else if
(jQuery.url.attr('anchor') == 'question6'){
    $('#answer6').show();
}
else if
(jQuery.url.attr('anchor') == 'question7'){
    $('#answer7').show();
}
else if
(jQuery.url.attr('anchor') == 'question8'){
    $('#answer8').show();
};
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这是相当漫长的.我真正希望能够做的是获取URL末尾的数字并将其附加到#answer,以便更紧凑.我试图将(jQuery.url.attr('anchor')的结果分配给变量,但是我在完成此任务时遇到了一些麻烦.任何帮助都将不胜感激!

url jquery parsing

5
推荐指数
1
解决办法
3558
查看次数

使用python和sql进行Web开发

我需要构建一个具有以下功能的网站:1)用户论坛,我们期望轻松的日常流量2)数据库后端,供用户创建配置文件,他们可以登录和上传媒体(图片)3)用户可以使用他们的个人资料从在线库存中购买内容4)为在线库存创建网页,购物车等5)安全的在线信用卡处理

我对python非常熟悉,但不熟悉python web框架.我知道一些SQL.我如何开始开发这样的东西?Django是一个很好的选择吗?

不是编程相关的本身:你在哪里推荐我为这样的应用程序获得域名的虚拟主机?

python

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

如何优化此Python代码以生成word-distance 1的所有单词?

分析显示这是我写的一个小字游戏的代码中最慢的部分:

def distance(word1, word2):
    difference = 0
    for i in range(len(word1)):
        if word1[i] != word2[i]:
            difference += 1
    return difference

def getchildren(word, wordlist):
    return [ w for w in wordlist if distance(word, w) == 1 ]
Run Code Online (Sandbox Code Playgroud)

笔记:

  • distance()被调用超过500万次,其中大部分是来自getchildren,它应该让wordlist中的所有单词与word1个字母完全不同.
  • wordlist被预先过滤为只有包含相同数量字母的单词,word所以它保证word1word2具有相同数量的字符.
  • 我是Python的新手(3天前开始学习它)所以对命名约定或其他风格的东西的评论也很受欢迎.
  • 对于wordlist,使用"2 + 2lemma.txt"文件获取12dict单词列表

结果:

谢谢大家,通过不同建议的组合,我现在运行程序的速度提高了两倍(除了我自己在询问之前做的优化之外,所以从初始实现开始,速度提高了4倍)

我测试了2组输入,我称之为A和B.

优化1:迭代word1,2 ...的索引

for i in range(len(word1)):
        if word1[i] != word2[i]:
            difference += 1
    return difference
Run Code Online (Sandbox Code Playgroud)

使用迭代迭代字母对zip(word1, word2)

for x,y in zip …
Run Code Online (Sandbox Code Playgroud)

python optimization python-2.x levenshtein-distance word-diff

32
推荐指数
3
解决办法
4990
查看次数