2017-12-19 23 views
0

그래서 저는 덱에서 자습서에 대한 영감을 얻은 채팅 봇을 만들고 있지만 알아낼 수없는 오류가 발생했습니다. 파이썬 (행 데이터)을 사용하여 chatbot을 만드는 동안 오류가 발생했습니다.

<i> 
     import sqlite3 
     import json 
     from datetime import datetime 

     timeframe = '2007-02' 
     sql_transaction = [] 

     connection = sqlite3.connect('{}.db' .format(timeframe)) 
     c = connection.cursor() 

     def create_table(): 
     c.execute("""CREATE TABLE IF NOT EXISTS parent_reply 
     (parent_id TEXT PRIMARY KEY, comment_id TEXT UNIQUE, parent TEXT, 
     comment TEXT, subreddit TEXT, unix INT, score INT)""") 

     def format_data(date): 
     data = data.replace("\n"," newlinechar ").replace("\r"," newlinechar 
     ").replace('"',"'") 
     return data 

     def find_parent(pid): 
     try: 
     sql = "SELECT comment FROM parent_reply WHERE comment_id = '{}' 
     LIMIT 1".format(pid) 
     c.execture(sql) 
     result = c.fetchone() 
     if result != None: 
      return result [0] 
     else: return False 
    except Exception as e: 
     #print ("find_parent", e) 
     return False 


    if __name__ == "__main__": 
    create_table() 
    row_counter = 0 

    paired_rows = 0 

    with open("/home/anonymouz/Desktop/redditdata/{}/RC_{}".format(timeframe.split('-')[0], timeframe), buffering=1000) as f: 
     for row in f: 
      print(row) 
      row_counter += 1 
      row = json.loads(row) 
      parent_id = row['parent_id'] 
      body = format_data(row['body']) 
      created_utc = row['created_utc'] 
      score = row['score'] 
      subreddit = row['subreddit'] 

      parent_data = find_parent(parent_id)<i> 


And the error I am getting: 
Traceback (most recent call last): 
    File "/home/anonymouz/Desktop/redditdata/reddit.py", line 44, in <module> 
    body = format_data(row['body']) 
    File "/home/anonymouz/Desktop/redditdata/reddit.py", line 17, in format_data 
    data = data.replace("\n"," newlinechar ").replace("\r"," newlinechar ").replace('"',"'") 
UnboundLocalError: local variable 'data' referenced before assignment 
>>> 

이 :) 더 깨끗한 버전이 도움을 줄 수 있고 그것에 대해 무례가 아닌 사람들을 주셔서 감사합니다 :

나는 최신 버전 파이썬 채팅 봇에 대한

코드를 사용하고 올바른 들여 쓰기와 코드의 : https://pastebin.com/2ifpEQy9

답변

0
def format_data(date): 

귀하의 매개 변수는 '날짜'하지만 해당 지역은 '데이터'입니다.

은 당신의 매개 변수 이름을 변경

'데이터'

def format_data(data): 
    data = data.replace("\n"," newlinechar ").replace("\r"," newlinechar 
    ").replace('"',"'") 
    return data 
+0

난 당신의 대답은 당신이 data.replace에 대해 얘기를 수행하고 있지 않다 죄송합니다? – Cyrus

+0

아직 가치가 지정되지 않은 것을 참조하고 있습니다. ''def format_data (date) '의'date '매개 변수에 의해 :''당신이'data '라는 이름을 매개 변수로 사용한다면'데이터 '를 대신 입력해야한다고 가정합니다. 따라서 정의는 "def format_data (data) :'' – seventyseven

+0

이어야합니다. (e) omg를 눈치 채 셨습니다. – Cyrus