2016-11-17 34 views
1

我在文本文件中的一些數據如下所示圖像(它的整個數據的只是一部分)。什麼是過濾出密鑰的最佳方式?從提取的文本數據的某些部分爲CSV使用Python

{ u'chan': 5, 
    u'cls': 0, 
    u'codr': u'4/5', 
    u'data': u'ABfxqqqpVVVOAAA=' 
} 
+0

不鏈接到圖片..在您的問題中複製和粘貼示例數據。顯示您嘗試過的代碼?你能用python讀取文本文件嗎?你能提取字典嗎?你知道如何用python編寫文件嗎? –

+0

查找ast.eval python模塊。它可以讓你把你的字典作爲一個字符串,並將其轉換爲一個Python字典。 –

回答

0

對於你貼什麼形式的一系列文件的嘗試

import csv 
filenames=[...] 
#open your output file in append mode 

with open('output.csv','a+') as out: 
    outwriter = csv.writer(out,dialect='excel') 

#write your headers 
outwriter.writerow(['header1','header2','header3']) 

#for every file 
for fname in filenames: 
    with open(fname) as f: 

     #list that holds each row 
     csvlines=[] 

     #labels you wanna keep 
     keep=["u'data'","u'rssi'","u'timestamp'"] 
     lines=f.readlines() 
     print lines 

     #split at first : character 
     lines = map(lambda x:x.split(':',1),lines) 

     for line in lines: 
      if line[0].strip() in keep: 

       csvlines.append(line[1].strip()) 
    #clean from unnecessary characters 
      csvlines=map(lambda x:x.replace("u'","").replace("'","").replace(",",""),csvlines) 
    #write it to csv and then reset it for the next file. 
      if(len(csvlines)==3): 
       print "writing" 
       print csvlines 
       outwriter.writerow(csvlines) 
       csvlines=[] 
+0

嗨,我有一個文件包含了很多相同格式的數據。它是如何工作的呢? – James

+0

重置每3個附加? – themistoklik

+0

即時獲取ValueErrorr:'wa'的無效模式 – James

1

假設樣本數據是數據的一個記錄,您可以用熊貓直接子集,並導出到Excel工作簿。

import pandas as pd 

df = pd.DataFrame({ u'chan': 5, 
    u'cls': 0, 
    u'codr': u'4/5', 
    u'data': u'ABfxqqqpVVVOAAA=', 
    u'datr': u'SF10BW125', 
    u'freq': u'912.9', 
    u'lsnr': u'-8.2', 
    u'mhdr': u'8007000002001900', 
    u'modu': u'LORA', 
    u'opts': u'', 
    u'port': 5, 
    u'rfch': 1, 
    u'rssi': -111, 
    u'seqn': 25, 
    u'size': 16, 
    u'timestamp': u'2016-11-17T09:51:44.406724Z', 
    u'tmst': 2477375724L},index=[0]) 
df = df[['data','chan','timestamp','rssi']] 
oName = #Path to desired excel workbook 
df.to_excel(oName,'Sheet1') 
+0

示例數據只是我的文本文件的一部分。我確實有其中的多個 – James

相關問題