我有一个键值格式的文本文件,其中没有真正的唯一定界符,我正尝试将其插入pandas数据框,最后可能会插入Excel。
这里是2行。
因此,除了第一个单词,其余的都是等号左侧的键,而value是第一个空格,除非字符串在2个引号内。
TEST NHM=TEPOSIT FL=(CITY,DIRECTION,LEASE)
TEST NHM=UNFIN FL=(DIRECTION)
LOG EQUATE=TXT_HLPER FE=F_STR RTC=NA FULL="To fulfill central requirements type %int_k" FAIL=FALSE KEY=100 STRTY=CENTRAL USE=TRUE
这些键还有更多键,并且所有行都不包含所有键。
我有2个可行的想法,但我想知道有没有更好的解决方案。
想法1:在数据框中插入每一行文本,使用预定义键,在这里我将使用regex查找值
( EQUATE=(\S*) )
或想法2: 在双引号内用_替换空格,然后使用空格作为定界符,等于说左侧是键,右侧是值。
def replacespace(text):
return text.replace(text[text.index('"')+1:text.index('"'),text.index('"')+1],text["":""].replace(" ", "_"))
list = replacespace(log.split(","))
^^我知道,非常pythonic:D
但是,实际上,有更好的方法可以解决这个问题,所以有什么主意吗?
谢谢