我无法理解它.
我想将字典的值插入到sqlite数据库中.
url = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=5f...1b&per_page=250&accuracy=1&has_geo=1&extras=geo,tags,views,description"
soup = BeautifulSoup(urlopen(url)) #soup it up
for data in soup.find_all('photo'): #parsing the data
dict = { #filter the data, find_all creats dictionary KEY:VALUE
"id_p": data.get('id'),
"title_p": data.get('title'),
"tags_p": data.get('tags'),
"latitude_p": data.get('latitude'),
"longitude_p": data.get('longitude'),
}
#print (dict)
connector.execute("insert into DATAGERMANY values (?,?,?,?,?)", );
connector.commit()
connector.close
我的密钥是id_p,title_p等,以及我通过data.get检索的值.
但是,我无法插入它们.
当我尝试写ID,标题,标签,纬度,经度… DATAGERMANY值(?,?,?,?,?)“,);我得到
NameError:未定义名称“title”.
我用dict.values和dict尝试了它,但后来它的说法表DATAGERMANY有6列,但提供了5个值.
添加另一个?给我错误(使用`dict.values):ValueError:参数是不支持的类型
这就是我创建数据库和表的方法.
#creating SQLite Database and Table
connector = sqlite3.connect("GERMANY.db") #create Database and Table, check if NOT NULL is a good idea
connector.execute('''CREATE TABLE DATAGERMANY
(id_db INTEGER PRIMARY KEY AUTOINCREMENT,
id_photo INTEGER NOT NULL,
title TEXT,
tags TEXT,
latitude NUMERIC NOT NULL,
longitude NUMERIC NOT NULL);''')
即使没有值填充到数据库中,该方法也应该工作……这也可能发生.