[Android+Firebase] 데이터베이스에 데이터 넣기

2-pi-r·2023년 12월 17일
0

Firebase에서는 JSON 파일을 읽어들여서 데이터를 생성할 수 있다. 나는 엑셀로 데이터를 가지고 있기 때문에, 이걸 JSON 파일로 바꿔서 사용해야 한다.

엑셀→JSON 바꾸기

1. 변환

나는 변환 사이트를 이용했다.

  • 변환 전 (엑셀)
  • 변환 후 (json)
    • 이 코드를 메모장에 복사 붙여넣기 해서 확장자를 .json으로 저장하면 된다.
  • Firebase에서 그대로 사용하면 이런 에러가 뜬다.
    • 내가 엑셀에서 데이터 형식을 저런 식으로 작성해서 json으로 바꾸면 key가 없다. key는 비워둘 수 없으므로 에러가 뜨는 것이다.

2. 적절한 형태로 JSON 파일 수정

  • 참고자료 : 데이터베이스 구조화

    • 공식 문서. JSON 파일이 어떻게 생겨야 하는지를 알려준다.
    • 대표 예시)
    • key에 숫자 쓸 때 주의. 그런데 "1" 이런 건 문자열이라서 괜찮다.
    • key에 특수문자 쓸 수 없다. 비워놓을 수도 없다.
    • 문자열 쓸 때 작은 따옴표로 쓰면 오류 난다. 큰 따옴표를 쓰자.
  • 수정사항

    • []를 {}로 바꾸고,
    • key를 비워놓을 수 없으니까 하나하나 붙여줘야 한다.
      * 하나하나 하기 귀찮으니까 파이썬 코드를 짜서 해결했다. 아래에 첨부한다. (다른 사람이 재사용하기 쉽게 약간 수정했다.)
      data = [] # [] 대신 1에서 변환한 코드 붙여넣기
      with open('파일명.json', 'w', encoding="utf-8") as file:
        file.write('{\n')
        for cnt in range(len(data)):
            if cnt != 0:
                file.write(',\n')
            file.write(f'\t"{cnt}": ')
            file.write('{\n')
            for key, value in data[cnt].items():
                if key != "date": # date : 1열 이름
                    file.write(',\n')
                file.write(f'\t\t"{key}": "{value}"')
            file.write('\n\t}')
        file.write('\n}')

JSON 파일로 데이터 생성하기

  • (주의!) 데이터가 추가되는 것이 아니라 덮어쓰기된다.

0개의 댓글