
리스트안에 있는 각 튜플을 변형해보자
기존의 자료 형태다.
[('2022-04-07T02:00:00Z', 23),
('2022-04-07T02:00:00Z', 17),
('2022-04-07T01:00:00Z', 24)]
이것을 다음과 같은 형태로 만들어보자.
[{'2022-04-07T02:00:00Z' : 23},
[{'2022-04-07T02:00:00Z' : 17},
{'2022-04-07T01:00:00Z' : 24}]
자세히 살펴보면 리스트 내부에 튜플들이 배치 되어있다.
그리고 최종 결과물은 리스트는 그대로 있고 내부에 튜플만 딕셔너리 형태로 바뀌어있다.
그렇다면 어떻게 코드를 짜야할까?
다음과 같은 순서로 진행해보자
result = [('2022-04-07T02:00:00Z', 23),
('2022-04-07T02:00:00Z', 17),
('2022-04-07T01:00:00Z', 24)]
우선 첫번째 값만 선택해 보면
result[0] = ('2022-04-07T02:00:00Z', 23)
이것을 바로 dict함수로 바꾸려고 하면 에러가 난다.
dict(result[0]) =
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/var/folders/6g/6x7dscrs09708jmjw6npd9600000gn/T/ipykernel_2134/1589395842.py in <module>
----> 1 dict(results[0])
ValueError: dictionary update sequence element #0 has length 20; 2 is required
그래서 바로 dict 함수를 사용하지말고 리스트로 한번 감싸준뒤 dict함수를 이용하면 된다.
dict([result[0]]) = {'2022-04-07T02:00:00Z': 23}
문제없이 출력 된것을 확인할 수 있다.
마지막으로 for loop을 이용해 마무리하자.
lst = []
for i in range(len(result)):
lst.append(dict([results[i]]))
다음과 같이 출력됨을 확인할 수 있다.
[{'2022-04-07T02:00:00Z': 23},
{'2022-04-07T02:00:00Z': 17},
{'2022-04-07T01:00:00Z': 24}]