2015-01-06 6 views
1

변경할 수없는 수학 방정식이므로 순서대로 보관하려는 데이터가 포함 된 JSON 파일을 읽으려고합니다. 그러나 OrderedDict() 사용하여 시도했다 그러나이 작동하지 않습니다 또는 작동하도록 가져올 수 없습니다. 여기Python JSON 입력 순서

나는 코드를 사용하고 있습니다 :

import json 
from collections import OrderedDict 

json_data = open('example3.json') 
data = OrderedDict(json.load(json_data)) 

print (json.dumps(data)) 

는 사람이 왜 작동하지 않습니다에 일부 빛을 수 있을까요?

종류는 사전에 JSON 데이터를로드 크레이그

+1

은 그냥 JSON 사양이 명시 적으로 (파이썬에서 dict's '로 번역) JSON 객체는 "키의 _unordered_ 모음 : 값 쌍"임을 언급주의 - 키의 주문에 IOW, 당신은 __not__가 의존해야 json. –

답변

3

json.load을 간주한다. 이 사전을 OrderedDict으로 변환하십시오. 불행히도 사전 이 처음이므로 주문은 OrderedDict에 "설정"되기 전에 이미 변경되었을 수 있습니다.

OrderedDict에 json을 직접로드하려면 object_pairs_hook 키워드를 OrderedDict과 함께 사용할 수 있습니다. 자세한 내용은 the documentation을 참조하십시오.

import json 
from collections import OrderedDict 

json_data = open('example3.json') 
data = json.load(json_data, object_pairs_hook=OrderedDict)