2009-05-08 3 views
7

내가 포토 버킷의 API와 통합 작업, 그리고 난이 건너 온 자신의 api docs :사전 적으로 정렬 하시겠습니까?

"이름 lexographically [원문] (바이트 순서는 표준 분류, 자연하지 않거나하여 매개 변수를 정렬 경우 ). 매개 변수의 이름이 같은 있으면 값으로 정렬하십시오. "

그 의미는 무엇입니까? 어떻게 사전 적으로 어떤 것을 정렬합니까? 바이트 순서?

나머지 문서는 지금까지 괜찮 았지만 (나에게)이 줄에는 추가 설명이있는 것처럼 보입니다. 불행히도 아무 것도 없었습니다.

어쨌든, 난 당신이^_^

답변

6

단어 나를 위해 정렬 등 처리 할 특정 모듈을 추천하고 싶은 경우에 (그것은 결국 장고 응용 프로그램이 될 것이다) 파이썬에서 응용 프로그램을 쓰고 있어요

http://www.thefreedictionary.com/Lexicographic

사전 순서 "사전 식"이어야합니다. 문자열에 나타나는 문자를 사용합니다.

어쨌든 대문자와 소문자를 함께 사용하지 마십시오. 파이썬 빌트인 list.sort() 메소드 만 사용하면된다.

+0

... 전 oauth_nonce 전에 나는 아주 오래된 버전의 맞춤법을 상속 생각 OAuth 1.0 사양의 – Justin

4

Facebook API와 비슷합니다. 서명 해시를 생성하기 전에 쿼리 문자열을 정규화해야합니다.

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

지금처럼 쿼리 문자열을 만들기 :

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

params.items()은 목록 튜플, 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는 기본 문자열을 생성

    012를 포함하는 입력 매개 변수
  • 매개 변수를 이름순으로 정렬합니다 (바이트 정렬, 표준 정렬, 자연 또는 대소 문자를 구분하지 않음).매개 변수의 이름이 같으면 값순으로 정렬하십시오.

  • RFC3986 섹션 2 (즉, urlencode)에서와 같이 매개 변수 값을 인코딩합니다. 매개 변수 문자열()을 만듭니다. 이것은 HTTP 'postdata'또는 'querystring'과 같은 형식입니다. 즉, 각 매개 변수는 이름 = 값으로 표현되고 &으로 구분됩니다. 예를 들어,

    a=1&b=2&c=hello%20there&c=something%20else

가 나는 그들이 매개 변수가 정렬 된 순서로 표시해야 함을 말하고 있다고 생각 - oauth_consumer_key

관련 문제