使用python将文本块解析为数据库字段

2024-04-25 22:12:46 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的文本块存储在一个LONGTEXT数据库字段中,需要使用python脚本将其解析到另一个表中。每个块的行数可变,顶部和底部都有不必要的文本,可以通过从结束字段减去开始字段来删除这些文本。此外,“name”在插入之前需要替换为另一个表的ID。作为python的新手,最简单的方法是什么?谢谢:-)

开始字段

show 
x1b[Kadmin@testbox> show counters
Global counters:
Elapsed time since last sampling: 304.308 seconds

--------------------------------------------------------------------------------
Total tests shown: 0
--------------------------------------------------------------------------------

x1b[2048;1Hx1b[Kx1b[?1lx1b>admin@testbox>

结束字段

show 
x1b[Kadmin@testbox> show counters
Global counters:
Elapsed time since last sampling: 304.308 seconds

name                                   value     rate
--------------------------------------------------------------------------------
packet_sent                          1234456    29305
packet_received                      1234758    29305
packet_allocated                     1234826    29288
packet_lost                                0        0
--------------------------------------------------------------------------------
Total tests shown: 4
--------------------------------------------------------------------------------

x1b[2048;1Hx1b[Kx1b[?1lx1b>admin@testbox>

目前为止的代码

import mysqldb
import difflib
from difflib_data import *

# Connect to database
db = db.connect("10.2.1.39","username","password","TEST_DATA")

def main():
     # Read TEST_RUN_ID
     trid = cursor.execute("""select TEST_RUN_ID from PERFORMANCE2""")
     for row in trid

     # Read START
     start = cursor.execute("""select START from PERFORMANCE2""")
     for row in start

     # Read END
     end = cursor.execute("""select END from PERFORMANCE2""")
     for row in end

     # Detect change between start and end
     d = difflib.Differ()
     modified = d.compare(start_lines, end_lines)

     # Parse into lines?
     for line in modified
        counterstring =
        trid =
        value = parselist[1]
        rate = parselist[2]
        tstamp =
             line 9 position 34,37
             modified.read()

     # Substitute counter id for counter string
     counterid = cursor.execute("""select COUNTER_ID from COUNTER_STRINGS where NAME = %counterstring""")

# Insert into COUNTER_DATA
try:
     cursor.execute("""INSERT INTO COUNTER_DATA VALUES (counterid, trid, value, rate, tstamp)""")
     db.commit()
except:
     db.rollback()

db.close()

Tags: infromidforexecutedbpacketshow