-2
Regexを使用してテキストファイルを解析する際に間違っていることを誰かが助けてくれますか? Pythonを使ってコードを実行する私は以下のテキストファイルで回答を得ました。numvaluelistという値を構文解析して取得します。現在TypeErrorを取得しています。Pythonを使用してテキストファイルを解析中にRegexが発生する
エラー:
lines = line_re.findall(data)
TypeError: expected string or buffer
文字列形式のテキストファイル(.txt)
historic_list {
id: "Text1(long) 11A"
startdate: 345453
numvaluelist: 0.123
datelist: 345453
}
historic_list {
id: "Text1(short) 11B"
startdate: 345453
numvaluelist: 0.456
datelist: 345453
}
historic_list {
id: "Text2(long) 11C"
startdate: 345453
numvaluelist: 1.789
datelist: 345453
}
datelist: 345453
}
time_statistics {
job_id: "123"
}
UrlPairList {
}
Pythonのコード
f= open(".txt_file", "r")
data = f.readlines()
# print data
line_re = re.compile(r'\{[^\}]+\}')
value_re = re.compile(r"(\w+): ('[^']*'|\S+)")
results = []
lines = line_re.findall(data)
for line in lines:
data_line = dict()
values = re.findall(value_re, line)
for (name, value) in values:
if(value[-1] == '}'): value = value[:-1] # to handle "foo}" without space
if(value[:1] == "'"): value = value[1:-1] # strip quotes
data_line[name] = value
results.append(data_line)
print type(results)
final_results = []
for i in results:
for key, value in i.items():
if key == 'numvaluelist':
final_results.append(i['numvaluelist'])
print final_results
ありがとうございました!!!どのようなばかげたエラー! –