我正在使用Python和Mysql。
我有一个看起来像这样的字符串:
s =" 1.xxxxxxxxx 2.xxxxxxxxx 3.xxxxxxxxx"
现在我想在db中插入这个字符串,在一行中有一行。例如
每一行都插入一个单独的行。
我该怎么做?
这是调用数据库的代码
def test(sql):
cursor = db.cursor()
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
这是我用来从pdf中提取内容的代码
def extract():
string =convert_pdf_to_txt("sample.pdf")
lines = list(filter(bool, string.split('1.')))
Data = {}
for i in range(len(lines)):
if 'References' in lines[i]:
Data = (lines[i + 1])
# print (Data)
x= "INSERT INTO `ref` (`Reference`) VALUES" + '(' + '"{}"'.format(Data) + ')'
test(x)
答案 0 :(得分:0)
您需要做的第一件事是正确拆分字符串。在这种情况下,如果您的示例数据是正确的,您可以通过拆分空格字符来完成此操作:
lines = string.split(' ')
现在,如果我正确理解您的代码,我们只需要插入包含字符串“References”的行。 Python为此提供了简单的语法:
for i in lines:
if 'References' in i:
x = 'INSERT INTO `ref` (`Reference`) '
'VALUES ({})'.format(i)
test(x)
这假设你的test()函数是正确的(它看起来是,但我现在没有办法测试它)。
此外,请确保您信任所插入的数据,因为您没有进行输入检查或清理。如果您只是尝试处理已经查看过的PDF以确保其格式正确,那么这可能没问题。
编辑提及另一件令我印象深刻的事情:如果在空间上拆分字符串不能正确处理输入数据,您可能需要查看更复杂的识别和拆分条目的方法。正则表达式可能有助于或可能比它们的价值更麻烦。没有更完整的测试数据集,很难说。