pprint()
from pprint import pprint
pretty print의 약자로,
예쁘게 print해주는 함수이다.
예쁘다의 의미는,
많은 양의 데이터, 특히 크롤링을 한 json파일을 다룰 때
사용자가 보기 쉽도록 가독성을 높여 출력해준다는 것이다.
ex) print() 를 사용할 때
{'prices': [{'city': 'Paris', 'iataCode': '', 'lowestPrice': 54, 'id': 2}, {'city': 'Berlin', 'iataCode': '', 'lowestPrice': 42, 'id': 3}, {'city': 'Tokyo', 'iataCode': '', 'lowestPrice': 485, 'id': 4}, {'city': 'Sydney', 'iataCode': '', 'lowestPrice': 551, 'id': 5}, {'city': 'Istanbul', 'iataCode': '', 'lowestPrice': 95, 'id': 6}, {'city': 'Kuala Lumpur', 'iataCode': '', 'lowestPrice': 414, 'id': 7}, {'city': 'New York', 'iataCode': '', 'lowestPrice': 240, 'id': 8}, {'city': 'San Francisco', 'iataCode': '', 'lowestPrice': 260, 'id': 9}, {'city': 'Cape Town', 'iataCode': '', 'lowestPrice': 378, 'id': 10}]}
ex) pprint() 를 사용할 때
{'prices': [{'city': 'Paris', 'iataCode': '', 'id': 2, 'lowestPrice': 54},
{'city': 'Berlin', 'iataCode': '', 'id': 3, 'lowestPrice': 42},
{'city': 'Tokyo', 'iataCode': '', 'id': 4, 'lowestPrice': 485},
{'city': 'Sydney', 'iataCode': '', 'id': 5, 'lowestPrice': 551},
{'city': 'Istanbul', 'iataCode': '', 'id': 6, 'lowestPrice': 95},
{'city': 'Kuala Lumpur',
'iataCode': '',
'id': 7,
'lowestPrice': 414},
{'city': 'New York', 'iataCode': '', 'id': 8, 'lowestPrice': 240},
{'city': 'San Francisco',
'iataCode': '',
'id': 9,
'lowestPrice': 260},
{'city': 'Cape Town',
'iataCode': '',
'id': 10,
'lowestPrice': 378}]}
keyword argument
<원본 print(results)>
{'locations': [{'id': 'CDG', 'int_id': 9667, 'airport_int_id': 9667, 'active': True, 'code': 'CDG', 'icao': 'LFPG', 'name': '파리 샤를 드 골 공항', 'slug': '파리-샤를-드-골-공항-파리-프랑스', 'slug_en': 'charles-de-gaulle-paris-france', 'alternative_names': ['Paris-Charles De Gaulle', 'Charles de Gaulle Airport', 'Aéroport de Paris-Charles-de-Gaulle'], 'rank': 23, 'global_rank_dst': 9, 'dst_popularity_score': 4383663.0, 'timezone': 'Europe/Paris', 'city': {'id': 'paris_fr', 'name': '파리', 'code': 'PAR', 'slug': '파리-프랑스', 'continent': {'id': 'europe', 'name': '유럽', 'slug': 'europe', 'code': 'EU'}, 'nearby_country': None, 'region': {'id': 'western-europe', 'name': 'Western Europe', 'slug': 'western-europe'}, 'subdivision': None, 'country': {'id': 'FR', 'name': '프랑스', 'slug': '프랑스', 'code': 'FR'}, 'autonomous_territory': None}, 'location': {'lat': 49.009722, 'lon': 2.547778}, 'alternative_departure_points': [{'id': 'FR-PLAI-PARC', 'distance': 16.69, 'duration': 796}, {'id': 'LIL', 'distance': 190.06, 'duration': 7266.3}, {'id': 'XCR', 'distance': 198.74, 'duration': 8435.4}, {'id': 'DOL', 'distance': 213.47, 'duration': 8513.2}, {'id': 'FR-PARI-PA10', 'distance': 22.52, 'duration': 1236.7}, {'id': 'FR-PARI-PAR9', 'distance': 27.21, 'duration': 1569.5}, {'id': 'FR-PARI-PAR3', 'distance': 27.37, 'duration': 1497.7}, {'id': 'FR-PARI-PA11', 'distance': 27.6, 'duration': 1586.1}, {'id': 'FR-PARI-PARI', 'distance': 28.62, 'duration': 1581.7}, {'id': 'FR-PARI-PAR1', 'distance': 30.33, 'duration': 1711.6}, {'id': 'FR-PARI-PAR2', 'distance': 30.48, 'duration': 1747}, {'id': 'FR-DISN-PARI', 'distance': 41.46, 'duration': 2213.1}, {'id': 'ORY', 'distance': 44.54, 'duration': 2554.2}, {'id': 'XJY', 'distance': 45.49, 'duration': 2562.7}, {'id': 'BVA', 'distance': 78.32, 'duration': 3340.6}], 'tags': [{'tag': 'sightseeing', 'month_to': -1, 'month_from': -1}, {'tag': 'culture', 'month_to': -1, 'month_from': -1}, {'tag': 'famous cities', 'month_to': -1, 'month_from': -1}, {'tag': 'romance', 'month_to': -1, 'month_from': -1}, {'tag': 'city break', 'month_to': -1, 'month_from': -1}], 'providers': [1028, 1035, 1053, 1064, 1096, 1128, 1148, 1163, 1165, 1175, 1227, 1229, 1282, 1283, 1291, 1329], 'special': [{'id': 'versailles_poi', 'name': 'Versailles', 'slug': 'versailles'}, {'id': 'eiffel-tower_poi', 'name': 'Eiffel Tower', 'slug': 'eiffel-tower'}, {'id': 'giverny_poi', 'name': 'Giverny', 'slug': 'giverny'}, {'id': 'le-cimetiere-de-pere-lachaise_poi', 'name': 'Le Cimetiere de Pere Lachaise', 'slug': 'le-cimetiere-de-pere-lachaise'}, {'id': 'louvre-museum_poi', 'name': 'Louvre Museum', 'slug': 'louvre-museum'}, {'id': 'notre-dame_poi', 'name': 'Notre Dame', 'slug': 'notre-dame'}], 'tourist_region': [{'id': 'greater-paris_poi', 'name': 'Greater Paris', 'slug': 'greater-paris'}, {'id': 'autoroute-utrecht-paris_poi', 'name': 'Autoroute Utrecht Paris', 'slug': 'autoroute-utrecht-paris'}, {'id': 'ile-de-france_poi', 'name': '일드 프랑스', 'slug': 'ile-de-france'}], 'car_rentals': [{'provider_id': 1175, 'providers_locations': ['644548']}], 'new_ground': False, 'routing_priority': 0, 'type': 'airport'}], 'meta': {'locale': {'code': 'ko-KR', 'status': 'OK'}}, 'last_refresh': 1664702017, 'results_retrieved': 1}
<기본 pprint(results) >
{'last_refresh': 1664702017,
'locations': [{'active': True,
'airport_int_id': 9667,
'alternative_departure_points': [{'distance': 16.69,
'duration': 796,
'id': 'FR-PLAI-PARC'},
{'distance': 190.06,
'duration': 7266.3,
'id': 'LIL'},
{'distance': 198.74,
'duration': 8435.4,
'id': 'XCR'},
{'distance': 213.47,
'duration': 8513.2,
'id': 'DOL'},
{'distance': 22.52,
'duration': 1236.7,
'id': 'FR-PARI-PA10'},
{'distance': 27.21,
'duration': 1569.5,
'id': 'FR-PARI-PAR9'},
{'distance': 27.37,
'duration': 1497.7,
'id': 'FR-PARI-PAR3'},
{'distance': 27.6,
'duration': 1586.1,
'id': 'FR-PARI-PA11'},
{'distance': 28.62,
'duration': 1581.7,
'id': 'FR-PARI-PARI'},
{'distance': 30.33,
'duration': 1711.6,
'id': 'FR-PARI-PAR1'},
{'distance': 30.48,
'duration': 1747,
'id': 'FR-PARI-PAR2'},
{'distance': 41.46,
'duration': 2213.1,
'id': 'FR-DISN-PARI'},
{'distance': 44.54,
'duration': 2554.2,
'id': 'ORY'},
{'distance': 45.49,
'duration': 2562.7,
'id': 'XJY'},
{'distance': 78.32,
'duration': 3340.6,
'id': 'BVA'}],
'alternative_names': ['Paris-Charles De Gaulle',
'Charles de Gaulle Airport',
'Aéroport de Paris-Charles-de-Gaulle'],
'car_rentals': [{'provider_id': 1175,
'providers_locations': ['644548']}],
'city': {'autonomous_territory': None,
'code': 'PAR',
'continent': {'code': 'EU',
'id': 'europe',
'name': '유럽',
'slug': 'europe'},
'country': {'code': 'FR',
'id': 'FR',
'name': '프랑스',
'slug': '프랑스'},
'id': 'paris_fr',
'name': '파리',
'nearby_country': None,
'region': {'id': 'western-europe',
'name': 'Western Europe',
'slug': 'western-europe'},
'slug': '파리-프랑스',
'subdivision': None},
'code': 'CDG',
'dst_popularity_score': 4383663.0,
'global_rank_dst': 9,
'icao': 'LFPG',
'id': 'CDG',
'int_id': 9667,
'location': {'lat': 49.009722, 'lon': 2.547778},
'name': '파리 샤를 드 골 공항',
'new_ground': False,
'providers': [1028,
1035,
1053,
1064,
1096,
1128,
1148,
1163,
1165,
1175,
1227,
1229,
1282,
1283,
1291,
1329],
'rank': 23,
'routing_priority': 0,
'slug': '파리-샤를-드-골-공항-파리-프랑스',
'slug_en': 'charles-de-gaulle-paris-france',
'special': [{'id': 'versailles_poi',
'name': 'Versailles',
'slug': 'versailles'},
{'id': 'eiffel-tower_poi',
'name': 'Eiffel Tower',
'slug': 'eiffel-tower'},
{'id': 'giverny_poi',
'name': 'Giverny',
'slug': 'giverny'},
{'id': 'le-cimetiere-de-pere-lachaise_poi',
'name': 'Le Cimetiere de Pere Lachaise',
'slug': 'le-cimetiere-de-pere-lachaise'},
{'id': 'louvre-museum_poi',
'name': 'Louvre Museum',
'slug': 'louvre-museum'},
{'id': 'notre-dame_poi',
'name': 'Notre Dame',
'slug': 'notre-dame'}],
'tags': [{'month_from': -1,
'month_to': -1,
'tag': 'sightseeing'},
{'month_from': -1, 'month_to': -1, 'tag': 'culture'},
{'month_from': -1,
'month_to': -1,
'tag': 'famous cities'},
{'month_from': -1, 'month_to': -1, 'tag': 'romance'},
{'month_from': -1,
'month_to': -1,
'tag': 'city break'}],
'timezone': 'Europe/Paris',
'tourist_region': [{'id': 'greater-paris_poi',
'name': 'Greater Paris',
'slug': 'greater-paris'},
{'id': 'autoroute-utrecht-paris_poi',
'name': 'Autoroute Utrecht Paris',
'slug': 'autoroute-utrecht-paris'},
{'id': 'ile-de-france_poi',
'name': '일드 프랑스',
'slug': 'ile-de-france'}],
'type': 'airport'}],
'meta': {'locale': {'code': 'ko-KR', 'status': 'OK'}},
'results_retrieved': 1}
1) depth 깊이
pprint(results, depth=1)
pprint(results, depth=2)
pprint(results, depth=3)
2) indent 들여쓰기 간격
pprint(results, depth=3, indent=4)
3) width 너비(한 줄에 출력한 최대 글자)
기본은 width= 80으로 한 줄에 최대 80자까지 출력된다.
pprint(results)
pprint(results, width = 200)
pprint(results, width = 500)
4) sort_dicts 딕셔너리를 키값에 따라 알파벳 순 정렬(=기본값)
a-z
pprint(results)
z-a
pprint(results, sort_dicts= False)
5) stream 로그 남기기
with open("output.txt", mode="w") as file:
pprint(results, stream=file)
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[39-5 파이썬] sheety API +tequila API (0) | 2022.10.04 |
---|---|
[39-3 파이썬] sheety API 사용하는 방법 (1) | 2022.10.04 |
[39-1 파이썬] Swift Code(국제은행식별코드), IATA(국제항공운수협회), IATA code - API활용 최저가 항공권 찾기 프로젝트1 (1) | 2022.10.03 |
[38-1 파이썬] 구글시트 이용해서 운동 기록 남기기 (1) | 2022.10.02 |
[37-6 파이썬 ] 7단계 requests.put(), requests.delete() (0) | 2022.09.30 |