【问题标题】:insert in database table in python在python中插入数据库表
【发布时间】:2025-12-22 00:20:07
【问题描述】:

我是 python 的初学者,我有这个项目,我需要将推文分类为不同的类别 我在 mysql 数据库中创建了一个 tweet 表,其中包含以下属性:(tweet_id,id_user,text,tweet_location,created_at,name_screen, categorie_name),它们将被与它们对应的每条推文中的信息插入其中

但我一直收到此错误:

 line 43, in <module>
    data['user_screen_name'],data['cat'])
KeyError: 'cat'

data['cat'] 已在另一个程序中声明,女巫在同一目录中执行分类

我需要连接这两个程序吗? 任何帮助将不胜感激

import mysql.connector
import json
# create the key

mydb = mysql.connector.connect(host='localhost', port='3306', user='root', password='nihad147', database='tweets')
mycursor = mydb.cursor()

sql_tweet = """INSERT INTO tweet (  tweet_id,
                                    id_user,
                                    text,
                                    tweet_location,
                                    created_at,
                                    name_screen,
                                    categorie_name,
                                    )
                                    VALUES (%s,%s,%s,%s,%s,%s,%s)"""
c = 0
for line in myJsonFile:
    c = c + 1
    print("tweet number ", c, " is uploading to the server")
    data = json.loads(line)
    # insert into tweet



    val_tweet = (
        data['tweet_id'], data['user_id_str'], data['raw_text'], data['location']['address']['city'], data['date'],
        data['user_screen_name'],data['cat'])
    print('nihad')
    mycursor.execute(sql_tweet, val_tweet)

    mydb.commit()

【问题讨论】:

    标签: python mysql json


    【解决方案1】:

    你需要调试你可以添加的代码

    print(data)
    

    在插入推文之前找出文档键和值

    您也可以使用 from data.get("date", None) 代替 data["date"] 如果 date 不存在键而不是引发错误,则此代码返回 None 值

    【讨论】: