게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안녕하세요 파이썬으로 디비에서 값을 빼와 디비로 넣는 프로그램을 만들고
게시물ID : programmer_21524짧은주소 복사하기
작성자 : AsadaShino
추천 : 0
조회수 : 435회
댓글수 : 4개
등록시간 : 2017/10/16 19:56:09
옵션
  • 본인삭제금지
있는데요.
5건의 데이터를 하나로 합쳐서 보내는데 이게 처음 몇번은 잘 되는데 여러번 반복하다보니까 리스트 범위 초과 오류가 나오더라구요

Traceback (most recent call last):
  File "D:\Eclipse workspace\maketempdata\outlet\transoutlet_val_samsung.py", line 111, in <module>
    del result[6]
IndexError: list assignment index out of range

파이썬은 이제 접한지 2주가 되었는데 킁....

무엇이 잘못 됬는지 좀 알려주세요 ㅠ

많이 잘못 됬겠지만... 디비 접속 관련 부분은 다 뺐습니다.

------
gate = ('1', '2', '3')
plc = ('1', '2', '3', '4')
relayn = ('1', '2', '3', '4')
resultindex = [0,1,2,3,4,5,6,7]
minute = 5

selectquery = "SELECT * FROM samsung WHERE gatecode = %(gatecode)s AND plccode = %(plccode)s AND relaynum = %(relaynum)s"
insertquery = "INSERT INTO samsung (gatecode, plccode, relaynum, date, amp, state, power) VALUES(%(gatecode)s, %(plccode)s, %(relaynum)s, %(date)s, %(amp)s, %(state)s, %(power)s)"
searchquery = "SELECT count(*) FROM samsung WHERE gatecode = %(gatecode)s AND plccode = %(plccode)s AND relaynum = %(relaynum)s"

item_count = 0
for gaco in gate:
    for plccode in plc:
        for relay in relayn:
            factor={
            "gatecode": gaco,
            "plccode": plccode,
            "relaynum": relay,
            }
            with fromdb.cursor() as cur:
                cur.execute(searchquery,factor)
                searchtemp = cur.fetchone()
                item_count = searchtemp[0]
                cur.execute(selectquery,factor)
                temp = cur.fetchmany(minute)

                print(temp)
                fromdb.commit()
                   
            with fordb.cursor() as cur:
                cur.execute(searchquery,factor)
                searchtemp = cur.fetchone()
                item_count = searchtemp[0]
                result = []
                tempinresult = 0.0
                while(1):
                    if(item_count < len(temp)):
                        result.insert (0,temp[0][0])
                        result.insert (1,temp[0][1])
                        result.insert (2,temp[0][2])
                        result.insert (3,temp[0][3])
                        result.insert (4,'0')
                        result.insert (5,temp[0][5])
                        result.insert (6,'0')
                        tempinresult = tempinresult + float(temp[item_count][4])
                        print("+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+")
                        item_count = item_count + 1
                    else:
                        del result[4]
                        result.insert(4, "{0:.4f}".format(tempinresult))
                        del result[6]
                        tempinresult = float(tempinresult) * 220                       
                        result.insert(6, "{0:.2f}".format(tempinresult))
                        tempinresult = 0.0
                        break

                outlet_val={
                "gatecode": result[0],
                "plccode": result[1],
                "relaynum": result[2],
                "date": result[3],
                "amp": result[4],
                "state": result[5],
                "power": result[6],
                }
                cur.execute(insertquery,outlet_val)
            fordb.commit()
            del result[0:6]
            del result[6]
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호