修改这段代码,是数据能直接保存到数据库中而不是csv文件中,def main(): #uid = '1235733435' uid =input("请输入用户的id:") # uid = '7476828285' # 获取用户信息 info = parse_user_detail(uid) # 获取关注信息 parse_user_friends(uid) print(f'关注数为{len(friends)}') # print(friends) with open('WeiboMessage/friends.csv', 'a', newline='', encoding='utf-8-sig') as f: writer = csv.writer(f) for item in friends: writer.writerow(list(item.values()))
时间: 2024-01-22 13:03:51 浏览: 120
为了直接将数据保存到数据库中,你需要在代码中添加连接数据库的代码,并将数据插入到相应的数据表中。下面是修改后的代码,以MySQL为例:
```python
import mysql.connector
# 建立数据库连接
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
# 创建游标对象
mycursor = mydb.cursor()
# 创建数据表
mycursor.execute("CREATE TABLE friends (uid VARCHAR(255), name VARCHAR(255), gender VARCHAR(255), location VARCHAR(255))")
# 获取用户信息
info = parse_user_detail(uid)
# 获取关注信息
parse_user_friends(uid)
# 输出关注数
print(f'关注数为{len(friends)}')
# 将数据插入到数据库中
for item in friends:
sql = "INSERT INTO friends (uid, name, gender, location) VALUES (%s, %s, %s, %s)"
val = (item['uid'], item['name'], item['gender'], item['location'])
mycursor.execute(sql, val)
# 提交事务
mydb.commit()
# 输出插入的数据行数
print(mycursor.rowcount, "record inserted.")
```
在这个例子中,我们首先使用`mysql.connector`库连接到MySQL数据库。然后,我们创建一个游标对象,用于执行SQL语句。接下来,我们执行了一个SQL语句,创建了一个名为`friends`的数据表。然后,我们获取用户信息和关注信息,并将数据插入到数据库中,使用`%s`作为占位符来代替实际的值。最后,我们提交了事务,并输出插入的数据行数。
你可以根据自己的需要修改SQL语句和数据表结构来适应你的数据存储需求。
阅读全文