Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 조현병
- 필리핀사망
- 전염병
- 우한 코로나
- everybody wants you
- Bolton
- 봉준호감독통역
- 웨일즈
- parasite
- 우한코로나바이러스
- 최성재
- wuhan
- 중국외교부
- cnn
- 미중
- red hearse
- sharonchoi
- 우한코로나
- 신종코로나
- 정은경 본부장님
- 우한
- 코로나19
- 창궐
- 치앙마이
- 확진자수
- 진짜영웅
- 봉준호감독통역사
- 어서와한국은처음이지
- 코로나
- 코로나바이러스
Archives
- Today
- Total
오지's blog
s3에서 가장 최근 업로드한 파일 찾기 - sorted 연습 python 본문
728x90
반응형
s3의 특정버킷내 stackoverflow를 보면서 아름다운 코드를 발견하여 이에 기록하게 되었다.
prac1. sorted함수 연습
dict형태의 list가 있을때 이를 정렬할수가 있는데 이 기능을 제공하는 python 내장함수 sorted함수가 있다.
dict_list = [{"name":"kelly", "gpa":"4", "dept":"computer science"},
{"name":"dick", "gpa":"2", "dept":"piano"},
{"name":"dana", "gpa":"3", "dept":"mechanical engineering"},
{"name":"issac", "gpa":"4.5", "dept":"medicine"},
{"name":"eden", "gpa":"2.5", "dept":"nuclear engineering"}]
sorted_gpa = sorted(dict_list, key=lambda dict_val:dict_val['gpa'], reverse=False)
lowest_gpa = sorted_gpa[0]
highest_gpa = sorted_gpa[-1]
print(f"lowest_gpa: {lowest_gpa}, highest_gpa:{highest_gpa}, sorted_gpa: {sorted_gpa}")
prac2. 가장최근 오픈한 약국이름은?
공공데이터포털에서 약국정보를 얻어온다. list내 dict형식으로 되어 있는 데이터를 설립일로 desc형식으로 sort하여 첫번째 요소를 가져온다.
import requests
res = requests.get(url="https://apis.data.go.kr/B551182/pharmacyInfoService/getParmacyBasisList?_type=json&serviceKey=key값")
print(res.text)
json_data = json.loads(res.text)
print(json_data['response']['body']['items']['item'])
pharmacy_list = json_data['response']['body']['items']['item']
latest_open_pha = sorted(pharmacy_list, key=lambda val:val['estbDd'], reverse=True)[0]
print(latest_open_pha)
이 코드는 문제가 잇다.
api첫번째 페이지 즉 100개중 최근 오픈한 약국을 보여주는 것이다.
for문을 돌려 append하여 append한 리스트를 기반으로 sort하면 된다.
prac3. aws의 특정 버킷내에 최근 업로드한 파일
s3client = boto3.client('s3'
, aws_access_key_id=AWS_ACCESS_KEY_ID
, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
prefix = 버킷내 특정폴더/특정폴더내 특정폴더
print(prefix)
s3client = s3client.list_objects_v2(Bucket=AWS_BUCKET_NAME, Prefix=prefix)
print(s3client)
latest_file = [obj for obj in sorted(s3client['Contents'], key=lambda obj:obj['LastModified'], reverse=True)][0]
이 코드에 주목하자
[obj for obj in sorted(s3client['Contents'], key=lambda obj:obj['LastModified'], reverse=True)][0]
'개발노트 > Python' 카테고리의 다른 글
DateTimeOffset.UtcNow.ToUnixTimeSeconds() python변환 (0) | 2024.06.13 |
---|---|
쿼리 수행시 ValueError: unsupported format character 'I' (0x49) at index 69 에러 해결방안 (0) | 2023.04.25 |
excel에서 dataframe형식으로 읽을때 병합쎌이 column이름일때 (0) | 2023.04.12 |
dunder와 magic메소드 (0) | 2022.10.11 |
개발자 선배 언니를 만나고 나서 (0) | 2022.09.28 |
Comments