2009-05-08 13 views
7

मैं Photobucket एपीआई के साथ एकीकरण पर काम कर रहा हूँ और मैं इस में आए उनके api docs:शब्दावली से क्रमबद्ध करें?

"नाम lexographically [वैसा] (बाइट आदेश, मानक छंटाई, प्राकृतिक नहीं या द्वारा मानकों पर क्रमबद्ध केस असंवेदनशील)। यदि पैरामीटर में समान नाम है, तो मान द्वारा क्रमबद्ध करें। "

इसका क्या अर्थ है? मैं कुछ शब्दावली से कैसे क्रमबद्ध करूं? बाइट ऑर्डरिंग?

उनके डॉक्स के बाकी ठीक किया गया है अब तक, लेकिन (मेरे लिए) ऐसा लगता है इस लाइन की तरह अधिक विवरण भालू। दुर्भाग्यवश कोई भी नहीं था।

वैसे भी, मैं में आवेदन लिख रहा हूँ अजगर (यह अंततः एक Django एप्लिकेशन हो जाएगा) के मामले में आपको लगता है कि मेरे लिए छँटाई^_^

उत्तर

6

शब्द इस तरह संभाल लेंगे विशिष्ट मॉड्यूल की सिफारिश करना चाहते हैं "कोषगत"

http://www.thefreedictionary.com/Lexicographic

शब्दकोश आदेश होना चाहिए। अक्षरों में दिखाई देने के रूप में अक्षरों का उपयोग करना।

वे सुझाव के रूप में, एक साथ ऊपरी गुना नहीं है और लोअर केस। बस पाइथन अंतर्निहित list.sort() विधि का उपयोग करें।

+0

मुझे लगता है कि मैं एक बहुत ही पुराने संस्करण से गलत वर्तनी विरासत में मिला OAuth 1.0 spec के। – Justin

4

यह फेसबुक एपीआई के समान है - क्वेरी स्ट्रिंग हस्ताक्षर हैश पैदा करने से पहले सामान्यीकृत किया जाना चाहिए।

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

तो जैसे क्वेरी स्ट्रिंग बनाएँ::

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

params.items() एक सूची tuples, sorted() प्रकार के रूप में कुंजी और शब्दकोश के मूल्यों रिटर्न

आप शायद की तरह मानकों का एक शब्दकोश है सूची, और urllib.urlencode() भागने के दौरान उन्हें एक स्ट्रिंग में जोड़ती है।

8

मुझे लगता है कि यहाँ कोषगत 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  
1

उद्धरण थोड़ा अनुभाग से अधिक:

मापदंडों सामान्यीकृत करें:

  • इस अनुरोध के लिए OAuth विशिष्ट मानदंडों जोड़े

    2 बेस स्ट्रिंग उत्पन्न इनपुट पैरामीटर में,

    oauth_consumer_key = <consumer_key> 
    oauth_timestamp = <timestamp> 
    oauth_nonce = <nonce> 
    oauth_version = <version> 
    oauth_signature_method = <signature_method> 
    
  • क्रमबद्ध नाम से मानकों lexographically [वैसा] (बाइट आदेश, मानक छंटाई, प्राकृतिक नहीं या केस संवेदी)।यदि पैरामीटर का एक ही नाम है, तो मान द्वारा क्रमबद्ध करें।

  • आरएफसी 3 9 86 अनुभाग 2 (यानी, urlencode) में पैरामीटर मानों को एन्कोड करें। पैरामीटर स्ट्रिंग() बनाएँ। यह HTTP 'postdata' या 'querystring' के समान प्रारूप है, यानी, प्रत्येक पैरामीटर नाम = मान के रूप में दर्शाया गया है जो & से अलग है। उदाहरण के लिए, a=1&b=2&c=hello%20there&c=something%20else

मुझे लगता है कि वे कह रहे हैं कि मानकों क्रमबद्ध क्रम में आने चाहिए - oauth_consumer_keyoauth_nonce से पहले से पहले ...

संबंधित मुद्दे