我知道这是一个老帖子,但我遇到了同样的问题,找到了解决办法。错误Expected n fields in line n, saw n可能是由于每一行的列数不同造成的。如果每行的列顺序不同,则此方法也不好。我在这里编写了一个示例代码,将日志转换为json,然后转换为pandas数据帧。
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')
我知道这是一个老帖子,但我遇到了同样的问题,找到了解决办法。错误
Expected n fields in line n, saw n
可能是由于每一行的列数不同造成的。如果每行的列顺序不同,则此方法也不好。我在这里编写了一个示例代码,将日志转换为json,然后转换为pandas数据帧。----编辑答案以解释间距不一致:
不知道什么是Python疗法,但这里有一个方法可以工作。
以OP的数据示例为例:
我循环遍历每一行并在等号处拆分,然后获取所需的文本:
——第一个答案:
正如@jezrael在评论中提到的,您可以在read_csv中利用“sep”参数。
见:
相关问题 更多 >
编程相关推荐