解析文本数据并在MySQL中插入

时间:2015-07-21 19:48:59

标签: python mysql parsing

我很困惑我需要写一个python /任何脚本的方法,这需要处理以下情况。

我从服务器生成一个文本文件,其中包含列名,时间戳,服务器名称和列值

cpunumber   1437501780  l09fr01 40.0
cpunice 1437501780  l09fr01 0.0
cpusystem   1437501780  l09fr01 0.0
cpuwait 1437501780  l09fr01 0.0
cpuuser 1437501780  l09fr01 1.0
cpudile 1437501780  l09fr01 0.0

下面给出了我需要插入这些值的表格。加载ID是我在程序中唯一填充的东西。解析上述信息并将其加载到表中的最佳方法是什么?

 CREATE TABLE `test`.`cpu_util_all` (
 `loadid` INT NOT NULL,
  `servername` VARCHAR(45) NOT NULL,
  `date_time` DATETIME NOT NULL,
  `cpu_number` DECIMAL(10,2) NULL,
  `cpu_user` DECIMAL(10,2) NULL,
  `cpu_nice` DECIMAL(10,2) NULL,
  `cpu_system` DECIMAL(10,2) NULL,
  `cpu_wait` DECIMAL(10,2) NULL,
  `cpu_idle` DECIMAL(10,2) NULL,
   PRIMARY KEY (`loadid`, `servername`, `date_time`,`cpu_user`));

1 个答案:

答案 0 :(得分:1)

您可以使用pandas来读取此类数据,并将其写入SQL

import pandas as pd
import sqlite3

## Tweak the options here to match the exact file format.  
x = pd.read_table('test.txt') 
## add column names (not necessary if the file has a header)
x.names = ['loadid','servername','date_time','cpu_number','cpu_nice','cpu_system','cpu_wait','cpu_idle']

## create SQL connection.
con = sqlite3.connect('test.db',)
## tweak the options here to get the keys and constraints.
x.to_sql('test', con)

您可以阅读有关使用pandas进行阅读和书写的更多信息here