gpt4 book ai didi

Python - NameError 名称 "title"未定义

转载 作者:行者123 更新时间:2023-11-28 18:32:41 26 4
gpt4 key购买 nike

我使用的数据集在多个文本文件中,格式为:

#*TITLE1
#@AUTHOR1,AUTHOR2
#tYEAR
#cpublicationvenue
#index1

每个 block 代表一篇论文。在我的数据集中,我有成千上万个这样的 block 。我想将此信息插入到我有多个表的数据库中。我在下面编写的代码有时可以完美运行。其他时候,当我尝试填充数据库时,它会随机给我一个错误,例如:

NameError: name 'title' is not defined

我现在正处于我想将所有这些数据放入我的数据库的阶段,但我想确保这段代码已经说明了 eg 的 block 何时缺少发布地点行,在这种情况下,只需离开该列该行空白。这是我写的代码:

import MySQLdb


conn = MySQLdb.connect(host="xx", user="xx", db="xx")
db1 = conn.cursor()


with open("path/to/file", "rb") as f:
for line in f:
if line.startswith("#*"):
title = line[2:]

elif line.startswith("#t"):
year = line[2:] # will ignore first two characters of line

elif line.startswith("#c"):
publication_venue = line[2:]

elif line.startswith("#index"):
ID = line[6:]

elif line.startswith("#@"):
author_list = line.split(",")
author_list[0] = author_list[0][2:]

elif line.strip() == '':

db1.execute('''INSERT INTO papers(
ID, TITLE, YEAR, Publication_Venue)
VALUES (%s,%s,%s,%s,%s)''',
(ID, title, year, publication_venue))


for In_order, author in enumerate(author_list, start=1):
In_order = In_order
author = author

db1.execute('''INSERT INTO authors(
ID, AUTHOR, In_order) VALUES(%s,%s,%s)''',
(ID, author, In_order))


conn.commit()

title = None
year = None
publication_venue = None
ID = None
author_list = None

else:
continue

谁能告诉我为什么我会收到这个名称错误,因为我已经在我的代码中明确定义了它!!

最佳答案

您只在第一个 if 中定义了 title:

if line.startswith("#*"):
title = line[2:]

如果你没有到达那里(该行不是以 #* 开头),它是未定义的。
很明显,这实际上是问题所在,因为您指定了:

The code I have written below works perfectly sometimes. Other times it will randomly give me an error when I try to populate the database.

关于Python - NameError 名称 "title"未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com