Python - 파일 형식(CSV 파일 및 JSON 데이터 처리)

5392 단어 파이썬 학습

1. CSV 모듈


CSV(Comma-Separated Values)는 Excel로 열 수 있는 쉼표 구분 값입니다.일반 텍스트이기 때문에 모든 편집기를 열 수 있습니다.Excel 파일과 달리 CSV 파일에서:
  • 값은 형식이 없습니다. 모든 값은 문자열입니다.
  • 글꼴 색상 등 스타일을 지정할 수 없음
  • 은 셀의 폭을 지정할 수 없고, 셀
  • 을 병합할 수 없습니다.
  • 다중 워크시트 없음
  • 이미지 차트를 포함할 수 없음
  • 1.1 Reader 객체 - CSV 파일에서 데이터 읽기

    import csv
    
    filename = 'F:/example
    .csv'
    with open(filename) as f:
        reader = csv.reader(f)
        print(list(reader))

    주의: 파일 이름 문자열을 csv에 직접 전달할 수 없습니다.reader () 함수입니다.액세스할 경우 list () 에 전달
    1.1.1 for 순환 중 반복
    import csv
    
    filename = 'F:/example.csv'
    with open(filename) as f:
        reader = csv.reader(f)
        for row in reader:
            #  1 
            print(reader.line_num, row)

    실행 결과
    1 ['AKST', 'Max TemperatureF', 'Mean TemperatureF', 'Min TemperatureF', 'Max Dew PointF', 'MeanDew PointF', 'Min DewpointF', 'Max Humidity', ' Mean Humidity', ' Min Humidity', ' Max Sea Level PressureIn', ' Mean Sea Level PressureIn', ' Min Sea Level PressureIn', ' Max VisibilityMiles', ' Mean VisibilityMiles', ' Min VisibilityMiles', ' Max Wind SpeedMPH', ' Mean Wind SpeedMPH', ' Max Gust SpeedMPH', 'PrecipitationIn', ' CloudCover', ' Events', ' WindDirDegrees']
    2 ['2014-1-1', '46', '42', '37', '40', '38', '36', '97', '86', '76', '29.95', '29.77', '29.57', '10', '8', '2', '25', '14', '36', '0.69', '8', 'Rain', '138']

    앞의 숫자는 줄 번호입니다. 1부터 reader.line_num으로 얻을 수 있습니다.
    주의해야 할 것은reader는 한 번만 반복될 수 있다는 것이다.reader는 교체 가능한 대상이기 때문에 next 방법으로 한 번에 한 줄을 얻을 수 있습니다.
    import csv
    
    filename = 'F:/example.csv'
    with open(filename) as f:
        reader = csv.reader(f)
        #  , reader 
        head_row = next(reader)
        for row in reader:
            #  2 
            print(reader.line_num, row)

    1.2 Writer 객체 - csv 파일에 데이터 쓰기


    reader가 읽을 수 있고, 쓰기도 할 수 있습니다.한 번에 한 줄, 한 번에 여러 줄에 쓸 수 있다.
    import csv
    
    #  
    datas = [['name', 'age'],
             ['Bob', 14],
             ['Tom', 23],
            ['Jerry', '18']]
    
    with open('example.csv', 'w', newline='') as f:
        writer = csv.writer(f)
        for row in datas:
            writer.writerow(row)
            
        #  
        writer.writerows(datas)
    newline=''을 지정하지 않으면 한 줄을 쓸 때마다 빈 줄이 기록됩니다.위의 코드는 다음과 같은 내용을 생성합니다.
    name,age
    Bob,14
    Tom,23
    Jerry,18
    name,age
    Bob,14
    Tom,23
    Jerry,18

    1.2.1 delimiter와lineterminator 키워드 매개 변수
    쉼표 대신 탭을 사용하여 셀을 구분합니다.
    import csv
    
    #  
    datas = [['name', 'age'],
             ['Bob', 14],
             ['Tom', 23],
            ['Jerry', '18']]
    
    with open('example.csv', 'w', newline='') as f:
        writer = csv.writer(f,delimiter='\t',lineterminator='

    ') for row in datas: writer.writerow(row)
    name age
    
    Bob 14
    
    Tom 23
    
    Jerry 18
    

    2.JSON 함수


    JSON은python에서 각각list와dict로 구성되어 있습니다.
    JSON 함수를 사용하려면 json 라이브러리:import json을 가져와야 합니다.
    함수
    묘사
    json.dumps
    Python 객체를 JSON 문자열로 인코딩
    json.loads
    인코딩된 JSON 문자열을 Python 객체로 디코딩

    2.1 json.dumps


            json.dumps는 Python 객체를 JSON 문자열로 인코딩하는 데 사용됩니다.
    문법
    json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", 
    default=None, sort_keys=False, **kw)

    인스턴스
    다음 예제에서는 그룹을 JSON 형식의 데이터로 인코딩합니다.
    import json
    
    data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
    
    json = json.dumps(data)
    print json

    위의 코드 실행 결과:
        [{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]
    매개변수를 사용하여 JSON 데이터 포맷 출력:
    >>> import json
    >>> print json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
    {
        "a": "Runoob",
        "b": 7
    }

    2.3 json.loads


             json.loads는 JSON 데이터를 디코딩하는 데 사용됩니다.이 함수는 Python 필드의 데이터 형식을 반환합니다.

    인스턴스


    다음 예제에서는 Python이 JSON 객체를 디코딩하는 방법을 보여 줍니다.
    
    import json
    
    jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
    
    text = json.loads(jsonData)
    print text
    

     
    위의 코드 실행 결과:
                 {u'a': 1,u'c' : 3, u'b': 2, u'e': 5, u'd': 4}
    python 원시 유형에서 json 유형으로의 전환 대조표:
    Python 
    JSON
    dict
    object
    list,tuple
    array 
    str, unicode 
    string
    int, long, float 
    number
    True
    true
    False    
    false
    None    
    null
     

    좋은 웹페이지 즐겨찾기