Python : 사전 목록을 json으로 변환


82

다음과 같은 사전 목록이 있습니다.

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

등등. 목록에 더 많은 문서가있을 수 있습니다. 병을 통해 반환 할 수있는 하나의 JSON 문서로 변환해야하는데이 작업을 수행하는 방법을 이해할 수 없습니다. 도와주세요. 이 웹 사이트에서 비슷한 질문을 보았지만 거기에서 해결책을 이해할 수 없었습니다.

답변:


118

json 라이브러리 사용

import json
json.dumps(list)

list그건 그렇고, 변수 목록을 다른 이름으로 변경하는 것을 고려할 수 있습니다 . 목록 생성을위한 내장 함수입니다. 변수 이름을 변경하지 않으면 예기치 않은 동작이나 버그가있는 코드가 발생할 수 있습니다.


1
괜찮아. 이것은 샘플 일 뿐이며 mylist라는 이름을 사용하고 있습니다. dumps ()는 목록에서도 작동합니까? 나는 그것이 dicts에만 사용되어야한다고 생각했습니다.
Apoorv Ashutosh 2014

파일을 JSON Column Array 또는 JSON row Array로 저장할 수 있습니까?
Anoop Toffy

참고 : 재 할당 목록 (list = [1,2,3])은 내장 메서드 list ()와 충돌합니다. 명심하세요.
nikhil swami

25
import json

list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

json 파일에 쓰기 :

with open('/home/ubuntu/test.json', 'w') as fout:
    json.dump(list , fout)

Json 파일 읽기 :

with open(r"/home/ubuntu/test.json", "r") as read_file:
    data = json.load(read_file)
print(data)
#list = [{'id': 123, 'data': 'qwerty', 'indices': [1,10]}, {'id': 345, 'data': 'mnbvc', 'indices': [2,11]}]

참고 : 재 할당 목록 (list = [1,2,3])은 내장 메서드 list ()와 충돌합니다. 명심하세요.
nikhil swami

1
response_json = ("{ \"response_json\":" + str(list_of_dict)+ "}").replace("\'","\"")
response_json = json.dumps(response_json)
response_json = json.loads(response_json)

2
안녕하세요! 이것이 OP의 문제를 해결할 수 있지만 일반적으로 SO에 대한 답변 만 코드를 작성하는 것은 권장되지 않습니다. OP가 더 잘 이해하고 사이트의 향후 방문자에게 도움이 될 것이므로 이것이 문제에 대한 해결책 인 이유에 대한 설명을 제공하십시오. 감사!
d_kennetz

0

결정된 키 값이있는 단일 사전으로 변환하려면 아래 코드를 사용할 수 있습니다.

data = ListOfDict.copy()
PrecedingText = "Obs_"
ListOfDictAsDict = {}
for i in range(len(data)):
    ListOfDictAsDict[PrecedingText + str(i)] = data[i]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.