json 으로 랭킹 만들기. 특정 속성을 기준으로 정렬하기.
조회수 1300회
{
"720924012909166682": {
"770571591422836757": {
"lvl": 6,
"exp": 12
},
"409679882327687168": {
"lvl": 1,
"exp": 0
},
"507504723184844813": {
"lvl": 5,
"exp": 20
}
}
}
사용할 json 파일 내부입니다.
with open('경로', 'r') as f:
lvs = json.load(f)
를 사용하여 json 파일을 불러왔습니다.
v1 = json.loads(json.dumps(lvs[str("첫번째 키")], sort_keys=True))
으로 첫번째 키 내부의 키와 값들을 불러왔습니다. 그리고
write = []
~~~ # write 를 지정
print("\n".join(write))
을 사용하여 출력하려고 합니다.
그리나 write 리스트 안에 v1 내부에 있는 모든 'lvl' 값을 가져와서 높은 순으로 정렬하려고 하는 부분에서 막혔습니다. 어떻게 해야하는지 아시는분 도와주시면 감사하겠습니다.
참고로 출력 형식은 (json 내부 사용)
LV.6 770571591422836757
Lv.5 507504723184844813
LV.1 409679882327687168
이렇게 하고싶습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
import json with open("dat.json") as f: lvs = json.load(f) v1 = lvs["720924012909166682"] v1_sorted_by_lvl = sorted(v1.items(), key=lambda e: e[1]["lvl"], reverse=True) write = [] for k, v in v1_sorted_by_lvl: write.append(f'LV.{v["lvl"]} {k}') print("\n".join(write))
- 감사합니당 ㅠㅜㅠㅜ 근데 다음번에는 설명두.. 좀 추가해주시면 좋을것같아요. 두번이나 도움 주셔서 감사합니다 알 수 없는 사용자 2020.12.15 00:29
- 두 질문 모두, sort, sorted 함수에서 key 에 lambda 함수를 사용하는 것이 핵심입니다. https://docs.python.org/ko/3/howto/sorting.html#key-functions 등을 참고하십시오. nowp 2020.12.15 08:25
댓글 입력