擅长:python、mysql、java
<p>我知道这是一个老帖子,但我遇到了同样的问题,找到了解决办法。错误<code>Expected n fields in line n, saw n</code>可能是由于每一行的列数不同造成的。如果每行的列顺序不同,则此方法也不好。我在这里编写了一个示例代码,将日志转换为json,然后转换为pandas数据帧。</p>
<pre><code>import pandas as pd
import json
path='log_sample.log'
log_data=open(path,'r')
result={}
i=0
for line in log_data:
columns = line.split('') #or w/e you're delimiter/separator is
data={}
for c in columns:
key = c.split('=')[0]
value=c.split('=')[1]
data[key]=value
result[i]=data
i+=1
j=json.dumps(result)
df=pd.read_json(j, orient='index')
</code></pre>