代码之家  ›  专栏  ›  技术社区  ›  Jiaaro

按字典顺序排序?

  •  7
  • Jiaaro  · 技术社区  · 15 年前

    我正在努力与Photobucket API集成,我在他们的 api docs :

    “按名称对参数排序 lexography[sic](字节顺序 标准分类,非自然分类或案例分类 麻木的)如果参数 相同的名称,然后按值排序。“

    那是什么意思?我该如何按字典顺序排序?字节排序?

    到目前为止,他们的其他文件都还可以,但(对我来说)这一行似乎需要进一步解释。不幸的是,没有人可以拥有。

    不管怎样,我在写申请 蟒蛇 (它最终将成为一个django应用程序)如果你想为我推荐处理这种排序的特定模块^^

    4 回复  |  直到 15 年前
        1
  •  6
  •   S.Lott    15 年前

    这个词应该是“词典学”

    http://www.thefreedictionary.com/Lexicographic

    字典顺序。使用字符串中出现的字母。

    正如他们所说,不要把大小写叠在一起。只需使用python内置list.sort()方法。

        2
  •  8
  •   dfa    15 年前

    我认为词典编纂是ASCII排序的“别名”?

    Lexicographic          Natural  
    z1.doc                  z1.doc    
    z10.doc                 z2.doc    
    z100.doc                z3.doc    
    z101.doc                z4.doc    
    z102.doc                z5.doc    
    z11.doc                 z6.doc    
    z12.doc                 z7.doc    
    z13.doc                 z8.doc    
    z14.doc                 z9.doc     
    z15.doc                z10.doc    
    z16.doc                z11.doc    
    z17.doc                z12.doc    
    z18.doc                z13.doc     
    z19.doc                z14.doc     
    z2.doc                 z15.doc    
    z20.doc                z16.doc    
    z3.doc                 z17.doc    
    z4.doc                 z18.doc    
    z5.doc                 z19.doc    
    z6.doc                 z20.doc    
    z7.doc                z100.doc    
    z8.doc                z101.doc    
    z9.doc                z102.doc    
    
        3
  •  4
  •   a paid nerd    15 年前

    这类似于Facebook API__,在生成签名散列之前,需要对查询字符串进行规范化。

    您可能有一个参数字典,比如:

    params = {
      'consumer_key': "....",
      'consumer_secret': "....",
      'timestamp': ...,
      ...
    }
    

    创建查询字符串,如下所示:

    urllib.urlencode(sorted(params.items()))
    

    params.items() 以列表元组的形式返回字典的键和值, sorted() 对列表排序,然后 urllib.urlencode() 在转义时将它们连接成单个字符串。

        4
  •  1
  •   Jonathan Leffler    15 年前

    从这一部分引述更多:

    2生成基字符串:

    规范化参数:

    • 将此请求的OAuth特定参数添加到输入参数,包括:

      oauth_consumer_key = <consumer_key>
      oauth_timestamp = <timestamp>
      oauth_nonce = <nonce>
      oauth_version = <version>
      oauth_signature_method = <signature_method>
      
    • 按名称lexography[sic]对参数排序(字节排序、标准排序,不区分大小写)。如果参数同名,则按值排序。

    • 按照RFC3986第2节(即URLENCODE)对参数值进行编码。 创建参数字符串()。这与http“postdata”或“querystring”的格式相同,即每个参数表示为名称=值,用&分隔。例如, a=1&b=2&c=hello%20there&c=something%20else

    我想他们是说参数必须按排序顺序出现- oauth_consumer_key 之前 oauth_nonce 在…之前