반응형
728x90
반응형

데이터를 csv 형식 및 json 형식으로 저장하는 예제이다.

1. 리눅스 리다이렉트 방식을 이용한 저장

1
2
3
4
5
6
7
8
9
10
11
12
 
# 리다이렉트 방식으로 csv 저장 방법.
 
# csv 의 Head 를 출력.
print('index,student-number,name')
 
# csv 의 Body 를 출력.
print('0,20111299,유승호')
print(','.join(['1','20111341','김김김']))
print(','.join(['2','24111341','싱상송']))
print(','.join(['3','32214545','오로치마루']))
print(','.join(['4','12313132','아오키지']))
cs

 

위와 같이 출력하는 코드를 작성한 후, 이를 실행할 때 리다이렉트 방법으로 csv로 저장한다. 아래는 그 방법과 실행 결과이다.

2. csv 파이썬 모듈을 이용한 저장.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
# csv 모듈 방식으로 csv 저장 방법.
 
import csv
 
with open('csv-module.csv''w', newline=''as f:
    writer = csv.writer(f)
    writer.writerow(['index','student-number','name'])
    writer.writerows([
        [020111299'유승호'],
        [120111341'김김김'],
        [224111341'싱상송'],
        [332214545'오로치마루'],
        [412313132'아오키지'],
    ])
 
 
cs

 

 

3. json 형식으로 저장

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
# json 저장 방법.
 
import json
 
# json 으로 저장할 데이터들을 list와 dict 형식으로 저장한다.
student_info = [
    {'index'0'student-number'20111299'name''유승호'},
    {'index'1'student-number'20111341'name''김김김'},
    {'index'2'student-number'24111341'name''싱상송'},
    {'index'3'student-number'32214545'name''오로치마루'},
    {'index'4'student-number'12313132'name''아오키지'}
]
 
# 출력
# print(json.dumps(student_info, ensure_ascii=False, indent=2))
 
# 파일 출력
with open('save-json.json','w'as f:
    json.dump(student_info, f)
 
cs

16 라인에서 ensure_ascii 를 False 값을 주게 되면 띄어쓰기를 넣게 되고, indent를 넣으면 들여쓰기를 한다.

다음은 그 결과이다.

 

728x90
반응형
728x90
반응형

xml etree를 이용하여 rss 에서 원하는 정보를 추출하는 예제이다.

기상청에서 제공하는 날씨 데이터 rss를 첨부 파일에 저장했다.

rss.xml
0.09MB

---

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from xml.etree import ElementTree # XML Parser
 
# parse 함수로 읽고 분석 후, ElementTree 객체 생성
tree = ElementTree.parse('./rss.xml')
# 해당 트리의 root 요소 반환
root = tree.getroot()
# 해당 경로에 해당하는 요소들의 갯수를 출력
print(len(root.findall('channel/item/description/body/location')))
# 추출
for loc in root.findall('channel/item/description/body/location'):
    print('지역 [{}] 의 기상청 소식입니다 -------------------'.format(loc.find('city').text))
    for data in loc.findall('data'):
        tm_ef = data.find('tmEf').text
        tmn = data.find('tmn').text
        tmx = data.find('tmx').text
        wf = data.find('wf').text
 
        print(tm_ef, tmn, tmx, wf)
cs

위 코드에 대한 결과이다.

728x90
반응형

+ Recent posts