大家好,我正在用Python开发一个聊天机器人,以下是我的代码:
import sqlite3import jsonfrom datetime import datetimedef find_parent(pid): try: sql = "SELECT comment FROM parent_reply WHERE link_id = '{}' LIMIT 1".format(pid) c.execute(sql) result = c.fetchone() if result != None: return result[0] else: return False except Exception as e: print("find_parent", e) return Falseif __name__ == "__main__": create_table() row_counter = 0 paired_rows = 0 with open ("C:/Users/harry/OneDrive/Desktop/reddit_data/2007/RC_2007-11".format(timeframe.split('-')[0], timeframe), buffering=1000) as f: for row in f: row_counter =+ 1 row = json.loads(row) parent_id = row['parent_id'] body = format_data(row['body']) created_utc = row['score'] subreddit = row['subreddit'] parent_data = find_parent()
当我运行这段代码时,出现了以下错误,有人能帮帮我吗?
parent_data = find_parent() TypeError: find_parent() missing 1 required positional argument: 'pid'
回答:
你的函数 find_parent(pid):
在调用时需要传入一个参数。
而你调用它时是这样的:
parent_data = find_parent()
你没有传入任何参数,所以出现了这个自解释的错误。
pid
是函数定义中的一个变量/参数。在你的主函数中,你调用 find_parent()
时,实际的ID存储在变量 parent_id
下。你需要传递 parent_id
,其值将被赋给 pid
,如下所示:
parent_data = find_parent(parent_id)