2016-07-28 2 views
0

두 개의 json 파일이 있습니다. 그들 중 하나는 다른 하나의 부분 집합 인 사전입니다.json 파일을 업데이트하는 데 문제가 있습니다.

json_file_1.json{'foo': 1, 'bar': 2, 'baz': 3}

json_file_2.json{'foo': 100, 'bar': 200}이 포함되어 포함되어 있습니다. 내가 마지막 json 파일을 열 때

with open('json_file_1.json') as f1: 
    original_info = json.load(f1) 
f1.close() 

with open('json_file_2.json') as f2: 
    updated_info = json.load(f2) 
f2.close() 

print original_info # prints the correct dictionary 
print updated_info # prints the correct dictionary 

final_info = original_info.update(updated_info) 

print final_info # prints None 

with open('json_file_final.json', 'w+') as f_final: 
    json.dump(final_info, f_final) 

그러나, 그것은 단지 포함 {'foo': 100, 'bar': 200, 'baz': 3} 여기

내가 지금까지 뭘하려 :

나는 다음이 최종 json 파일을 만들려면 "없는". 내가 디버깅을 시도했을 때 original_infoupdated_info을 출력했는데, 각각 괜찮 았어. 나는 original_info.update(updated_info)이라고 부를 수 있었고 제대로 업데이트 된 사전을 만들어 냈습니다. 그러나 모든 것이 결합되었을 때 어떤 이유로 작동하지 않습니다.

의견이 있으십니까?

감사합니다.

+0

당신은 –

+0

cricket_007 @ 멋진, 감사 with''사용하는 경우 파일을 닫을 필요가 없습니다, 참고로 original_info

덤프합니다! –

답변

2

dict.update 사전을 내부 업데이트하고 None을 반환합니다.

당신은

In [11]: d1 = {'foo': 1, 'bar': 2, 'baz': 3} 

In [12]: d2 = {'foo': 100, 'bar': 200} 

In [13]: d3 = d1.update(d2) 

In [14]: d3 

In [15]: print(d3) 
None 

In [16]: d1 
Out[16]: {'bar': 200, 'baz': 3, 'foo': 100} 
+0

이런, 정말 고마워! –

+0

환영합니다. 나는 문서에 대한 링크도 추가했다. –

관련 문제