CSV 파일에서 Deta Bases + Alternative 솔루션으로 데이터를 전송합니다.

우리 뭐 할까.



우선, 이것을 두 단계로 진행해 보겠습니다.
  • csv를 json으로 변환
  • 변환된 json을 데이터베이스에 업로드

  • 전제 조건


  • Deta에서 무료 계정 만들기
  • 새 프로젝트 만들기(프로젝트 키를 적어두십시오. 필요합니다.)

  • 시작하자.



    csv 파일이 다음과 같다고 상상해보세요.

    name,age
    fredy,34
    god,34345345
    mannu,34
    


    우리는 다음과 같이 원합니다.

    [{'name': 'fredy', 'age': '34'},{'name': 'god', 'age': '34345345'}
    ,{'name': 'maanu', 'age': '34'}
    ]
    


    csv 모듈을 가져와서 시작하겠습니다.




    import csv
    


    파일 내용 읽기:

    arr=[]
    with open (path) as csvFile:
        csvReader = csv.DictReader(csvFile)
        for csvRow in csvReader:
            arr.append(csvRow)
    


  • csv에서 추출한 모든 json을 추가하기 위해 arr이라는 목록을 만들고 있습니다.

  • csvReader = csv.DictReader(csvFile)
    


  • 이렇게 하면 각 행을 사전에 매핑하는 csvreader 객체가 생성됩니다.
  • 이제 csvreader를 사용하여 사전을 추출할 수 있습니다.

  • for csvRow in csvReader:
          arr.append(csvRow)
    


  • 위의 루프는 csvreader 개체에서 각 사전을 가져와 앞서 언급한 목록 arr에 추가합니다.
  • 이제 arr 목록을 인쇄하여 json 데이터를 볼 수 있습니다.

  • >> print(arr)
    [{'name': 'fredy', 'age': '34'},{'name': 'god', 'age': '34345345'}
    ,{'name': 'maanu', 'age': '34'}
    ]
    


    csv 파일이 변환되었습니다. 데이터베이스에 업로드할 수 있습니다.


  • deta 모듈을 설치합니다.

  • pip install deta
    


  • 가져올 수 있습니다.

  • from deta import Deta
    


  • 프로젝트 키로 초기화(프로젝트를 생성할 때 얻음)

  • deta = Deta(projectkey)
    database = deta.Base(db)
    for each in arr:
        datafile.insert(each)
        print("Uploaded {}".format(each))
    
    


  • Deta에서 데이터베이스 연결 또는 생성

  • database = deta.Base(db)
    



    for each in arr:
        datafile.insert(each)
        print("Uploaded {}".format(each))
    
    


  • arr 목록을 반복하고 있으며 datafile.insert(each)는 각 데이터를 데이터베이스에 삽입합니다.
  • 마지막으로 Deta Base UI에 이 기능이 있습니다.



  • 최종 코드




    def csvtodeta(id,path,db):
        deta = Deta(id)
        datafile = deta.Base(db)
        print("Reading data from {}".format(path))
        arr=[]
        with open (path) as csvFile:
            csvReader = csv.DictReader(csvFile)
            for csvRow in csvReader:
               arr.append(csvRow)
        for each in arr:
            datafile.insert(each)
            print("Uploaded {}".format(each))
        print("succesfully uploaded {} data to {} Base".format(len(arr),db))
    
    



    대체 솔루션



    동일한 작업을 수행하기 위해 Python CLI 도구를 만들었습니다.

    pip install csvtodeta
    


  • 한 번의 명령으로 csv 파일의 데이터가 Deta🎉에 업로드됩니다.

  • $ csvtodeta --id yourprojectkey --path path/to/csv.csv --db detabasename
    


  • id는 deta
  • 의 프로젝트 키입니다.
  • csv 파일의 경로 이름을 제공하십시오.
  • 만들거나 연결하려는 기본의 데이터베이스 이름을 제공하십시오.
  • 짜잔...🎉🎉 데이터가 업로드 되었습니다.

  • $ csvtodeta --id 45345dhsgh3rjdf2ur34hhwf --path src/deta.csv --db detabasename
    Reading data from src/deta.csv
    Uploaded {'name': 'fredy', 'age': '34'}
    Uploaded {'name': 'god', 'age': '34345345'}
    Uploaded {'name': 'maanu', 'age': '34'}
    succesfully uploaded 3 data to detabasename Base
    
    


    Github 레포



    이 블로그를 읽어주셔서 감사합니다. 의문점이 있거나 잘못된 설명이 있으면 여기에 댓글을 달아주세요.

    좋은 웹페이지 즐겨찾기