0

次の例では、mysql テーブルに挿入したい sql 値を出力できました。実際にステートメントを実行するにはどうすればよいですか?

import re
import MySQLdb

s = "Jul 15 12:12:51 whitelist logger: 1|999999999999|id:d9faff7c-4016-4343-b494-37028763bb66 submit date:1307130919 done date:1307130919 stat:DELIVRD err:0|L_VB3_NM_K_P|1373687445|vivnel2|L_VB3_GH_K_P|promo_camp1-bd153424349bc647|1"

logger_re = re.compile(
"logger: ([^ ]+)\
 submit date:(\d+)\
 done date:(\d+)\
 stat:(.+)\
 err:(.+)$")

myvalues = logger_re.search(s).groups()

db = MySQLdb.connect(host="localhost", # your host, usually localhost
                     user="root", # your username
                      passwd="passwd", # your password
                      db="test") # name of the data base

# you must create a Cursor object. It will let
#  you execute all the query you need
cur = db.cursor() 

# cur.execute(insert into test.weblogs (output of myvalues))

値はテキスト ファイルから抽出する必要があります。通常は /var/log/messages

4

1 に答える 1

2

この例は役立つはずです

あなたの質問を読んだ後、あなたの問題が正確に何であるかを言うのは難しいです(クエリのフォーマット、プロセスのコミット?)

try:
    cur.execute("INSERT INTO MyTable (id,somerow) VALUES (%s, %s)" % ("someid", "somerow"))
    db.commit()
except MySQLdb.Error, e:
    print e[0], e[1]
    db.rollback()
于 2013-07-15T08:51:15.437 に答える