All Articles

TIL&TEL 20.05.18~20.05.24

TIL( Today I Learned)

20-05-18 월

  • 프로젝트 진행 미팅
  • 키워드 처리 프로세스 만들기

20-05-19 화

  • 키워드 처리 프로세스 만들기

20-05-20 수

  • 프로세스 실행하면서 에러 수정

20-05-21 목

  • 프로젝트 진행 회의

    • 데이터 수집
  • 회의 반영

20-05-22 금

  • GCP SQL migrate

    • DB migrate
  • 테스트
  • 프로젝트 서비스 회의

TEL (Trial and Error Log)

20-05-18

  • Error: TypeError: ‘int’ object does not support item assignment

    • Situation: dic 하위 에 dict를 계속해서 만들려고 했다.
    result[doc['brand_id']] = doc['brand_id']
    result[doc['brand_id']][doc['channel_id']] = doc['channel_id']
    result[doc['brand_id']][doc['channel_id']][doc['collector_output_id']] = doc
    • Reason: dict의 value로 여러개를 지정하려고 했다. 그러면 안되지
    • dict로 생성을 안하고 dict처럼 취급하려고 해서 에러가 났다.
    • Solution: dict로 생성하기
    result[doc['brand_id']] = {
      doc['channel_id']: {
      	doc['collector_output_id']: doc
       }
    }
  • Error: duplicate key in table

    • Situation: 추가 테이블 생성시 에러
    • Reason: 하나의 데이터베이스 스키마에 외래키의 이름이 중복될 경우에 발생하는 에러, 다른 테이블 생성문을 그대로 베껴서 사용했는데 거기에 포린키 값을 그대로 사용하고 있어서 충돌이 일어났다.
    • Solution:외래키의 키 값을 다르게 해주면 해결
  • Error: TypeError: ‘int’ object is not subscriptable

    • Situation: dict에서 key를 사용하려고 하는데 에러
    • Reason: dict가 가는줄 알았는데 dict가 가지 않아서생김
    • Solution: dict형으로 자료 내려주기
  • 20-05-19

    • Error: SQL syntax error

      • Situation: SQL update시 에러 발생
      • Reason: UPDATE SET 사이에 ,가 들어가 있어서 에러남.
      • Solution: 발견해서 , 지움
    • Error: too many values to unpack (expected 3) 여러 값을 가진 dict parsing 중

      • Situation:
      [ k, v, +1 for k, v, +1 in dict]
      • Reason: dict parse를 k, v외에 하나더 추가해서 parsing시 에러
      • Solution:
      • [ val[k] , val[v] , val[+1] for val in dict]
    • Error: ‘numpy.float64’ object has no attribute ‘translate’

      • Situation: when float value saved
      • Reason: pymysql dont supprt float
      • Solution: change float to str with str( )

    20-05-20

    • Error: TypeError: not all arguments converted during string formatting

      • Situation: pymysql 실행시 에러
      • Reason: 싱글 밸류 입력 하는줄 알고 단일 쿼리 실행문으로 입력해놓고 있었다.
      • Solution: 멀티 밸류 처리식으로 변경하기 cursor.excutemany (query, (data) ) <== cursor.excute(query, data)
    • Error: (1064, “You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘1, NULL, NULL, ‘2020-05-20 16:32:00’)’

      • Situation: excutemany 동작 안함.
      • Reason: , 하나 중간에 뺴먹음
      • Solution: %s , %s <== %s %s

    20-05-22

    • Error: pymysql.err.ProgrammingError: (1064, ‘You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

      • Situation: pymysql insert error
      • Reason: sql query 에 \\ 들어가 있음
      • Solution: %s 로 바꾸고 유효성 검증은 sql에 맡겼다.
    • Error: ERROR: Column count doesn’t match value count at row

      • Situation: SQL input process
      • Reason: values에 콤마(,)가 하나가 빠진 것을 볼 수 있다.
      • Solution: 콤마 처리
    • Error: ImportError: cannot import name ’’ from ‘py_file’

      • Situation: 상수 임포트 동작을 안함
      • Reason: 변수는 변/상수는 그 자체로 import 못함
      • Solution:
      from resource_path import pyfile
      py_file.CONSTANT