2015-01-18 7 views
0

파이썬에서 일부 키와 값으로 사전을 만드는 코드가 있습니다. 그러나 값을 추가 할 때와 동일한 순서로 값을 정렬해야합니다. 따라서 코드파이썬 사전 키 순서

def getdataready(): 
    data = {} 
    data["cputemp"] = str(getcputemp()) 
    data["cas"] = str(datetime.datetime.now()).replace(" ", "%20") 
    data["fan"] = str(fanstate()) 
    data["pstemp"] = str(getPStemp()) 
    #there are some more keys added 
    return data 

사전을 선언하고이를 반환합니다. 그러나 코드를 실행할 때 반환 된 사전은 규칙 (pstemp, cas, cputemp, venkovniteplota, fan, pokojovatelota)없이 순서가 지정됩니다. 어떻게 선언 순서 (cputemp, cas, fan, pstemp, .. .)? 이 순서대로 사전이 웹 서버로 보내지기 때문에 (http://parman.moxo.cz/index.php?page=info wget과 사전을 URL로 변환하고 PHP를 $ GET의 값으로 사용함) 수신 된 것과 동일한 순서로 표시됩니다. 이 순서대로 가지고 싶습니다. 고마워요.

+0

또한 메소드 이름'def get_data_ready()'에 snake case를 사용하십시오. –

+0

@ 카스라 404가 맞지 않습니까? – parman

+0

사전의 항목 순서를 제어하려면'collections' 모듈에서'OrderedDict'를 사용할 수 있습니다. iterating 할 때 데이터의 원래 삽입 순서를 정확하게 유지합니다. : 'from collections 가져 오기 OrderedDict data = OrderedDict()'더 읽기 https://docs.python.org/3.4/library/collections.html#collections.OrderedDict – Kasramvd

답변

1

collections.OrderedDict을 사용하십시오. 요청한 기능을 제공하고 추가 된 순서대로 키를 유지합니다.

+0

감사합니다. 컬렉션 만 가져올 필요가 있습니다. (몇 가지 이유로 지금은 답변을받을 수 없으므로 기다려주세요) – parman