Sar*_*ana 1 python database sqlite
我在urbandictionary中编写了一个简单的翻译脚本:
import urllib.request
import bs4
def translate():
search=''
while(search!='!'):
search=input("Enter a word(! for exit): ")
if search=='!':
continue
search2=search.replace(' ','+')
urb_url='http://www.urbandictionary.com/define.php?term='+str(search2)
urban=urllib.request.urlopen(urb_url).read().decode('utf-8')
soup_urb = bs4.BeautifulSoup(urban)
try:
q2=soup_urb.find('div', class_="meaning").text
print("{0}: {1}".format(search,q2))
except AttributeError as e:
print("The word not found\n")
Run Code Online (Sandbox Code Playgroud)
现在我想保存搜索到的每个单词的结果以供使用,并且将来不再搜索。你的建议是什么?sqlite,以简单文本或其他解决方案保存。
您可以使用sqlite3任何数据库。尝试这个
import sqlite3
conn = sqlite3.connect('test.db')
try:
conn.execute('''CREATE TABLE urbandictionary
(SEARCH_WORD TEXT NOT NULL,
SEARCH_STRING TEXT NOT NULL)''')
print "Table created successfully";
except:
pass
conn.close()
Run Code Online (Sandbox Code Playgroud)
然后在你的打印语句行中,输入
conn = sqlite3.connect('test.db')
conn.execute("INSERT INTO urbandictionary (SEARCH_WORD, SEARCH_STRING) \
VALUES (?,?)", [search, q2])
conn.commit()
conn.close()
Run Code Online (Sandbox Code Playgroud)
要查看结果,
conn = sqlite3.connect('test.db')
cur = conn.execute('select * from urbandictionary')
res = [dict(search_word=row[0], search_string=row[1]) for row in cur.fetchall()]
conn.close()
>>>res #gives you output
Run Code Online (Sandbox Code Playgroud)