[英]Pyparsing - Simple parsing from numbers into a list
我想做一個簡單的解析器,但是我總是得到一個異常( pyparsing.ParseException: Expected W:(ABCD...), found '6' (at char 3), (line:1, col:4)
。
例如:如果我有此數據(在.txt中):
Mo:6,8,9
Di:7,5,2
Mi:5,2,6
Do:2,5,6,7
Fr:2,5,7
#
Mo:5,4,8
Di:1,5,6,7
Mi:5,2,1
Do:2,5
Fr:4
我想把這個找回來:
[
{
"mo": [6, 8, 9],
"di": [7, 5, 2]
#...
},
{
"mo": [5, 4, 8],
"di": [1, 5, 6, 7],
#...
}
]
這是我的代碼:
from pyparsing import Word, alphas
import re
result = []
with open("days.txt") as file:
content = file.read()
splitted = content.split("#")
for split in splitted:
tmp = {}
for day in split.split("\n"):
if day is "" or day is "\n":
continue
text_format = Word(alphas) + ":" + Word(alphas)
parsed_split = text_format.parseString(day)
weekday = parsed_split[0]
numbers = re.sub("\s+", "", parsed_split[-1]).split(",")
tmp[weekday] = numbers
result.append(tmp)
我想將日期中的數字解析為字典。
6does不適合alphas
使用alphanums
或nums
代替。
text_format = Word(alphas) + ":" + Word(alphanums)
參考: 常見的字符串和標記常量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.