我在python上遇到了麻烦(假设我是一个初学者……),我试图解析由api URL下载的以下json数据(部分数据)。。。你知道吗
{
"sha": "cffff88d9f69932845ea770b09bfdfbdd3c23ed9",
"node_id": "MDY6Q29tbWl0NjUyNzU5NTM6Y2ZmZmY4OGQ5ZjY5OTMyODQ1ZWE3NzBiMDliZmRmYmRkMzJmZDAzYQ==",
"commit": {
"author": {
"name": "Anton",
"email": "user1@test1.com",
"date": "2018-09-18T08:46:12Z"
},
"committer": {
"name": "Anton",
"email": "user1@test1.com",
"date": "2018-09-18T08:46:12Z"
},
"message": "Release 2.0.0",
"author": {
"login": "Tony",
}
}
一旦我解析了这些数据,我想将它们存储到一个表“users”中,其中包含sha-date-author-message列(使用SQLite)
|安东| 2018-09-18T08:46:12Z |托尼|发行版2.0.0 |
(我希望python会这样做……)
我曾使用请求库从api检索数据,但当我尝试将数据存储到列中时,python出现了错误。我使用for循环来存储数据。。。你知道吗
api_url = requests.get('https://.......)
data_json = api_url.json()
sqlite_file = 'users.db'
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
c.execute("DROP TABLE IF EXISTS users")
c.execute("CREATE TABLE IF NOT EXISTS users (sha TEXT, date TEXT, author
TEXT, message TEXT, is_external INTEGER)")
for item in data_json:
sha = item['sha']
date = item['commit']['author']['date']
author = item['author']['login']
message = item['commit']['message']
c.execute("INSERT INTO users (sha,date,author,message) VALUES (?,?,?,?)", sha, date, author, message)
conn.commit()
conn.close()
错误如下:
c.execute("INSERT INTO users (sha,date,author,message) VALUES (?,?,?,?)", sha,date,author,message) TypeError: function takes at most 2 arguments (5 given)
我被困住了。。。谢谢你的帮助!你知道吗
您需要提供参数作为一个参数,因此使其成为一个iterable-例如列表或元组。你知道吗
-或-
相关问题 更多 >
编程相关推荐