问题描述
我正在尝试解析一个类似csv的文件,该文件具有一系列用分号(;
)分隔的键和值,但是在忽略任何用双引号引起来的分号时遇到了问题。行的一般格式为:
key_1 "Value 1"; key_2 "Value 2"; key_3 "Some other value with; possible semicolon"
我尝试使用CSV模块,但是除非整个条目都用引号引起来,否则它似乎无法正确地逸出;
(键和值都需要被逸出,而实际上并不需要)。
我并不是真的想编写自己的解析器(但是如果我真的需要的话可以)。我想知道是否有现有的库可以处理这个问题?我尝试过的当前代码是:
import csv
import io
test_line = '''gene_id "LOC101495167"; product "endo-1,3;1,4-beta-D-glucanase-like"; exon_number "1"; '''
reader = csv.reader(
io.StringIO(test_line),delimiter = ';',quotechar = '"',skipinitialspace = True,quoting=csv.QUOTE_ALL
)
for row in reader:
print(row)
当前输出:
['gene_id "LOC101495167"','product "endo-1,3','1,4-beta-D-glucanase-like"','exon_number "1"','']
必需的输出:
['gene_id "LOC101495167"','exon_number "1"']
或理想情况下:
{"gene_id": "LOC101495167","product": "endo-1,4-beta-D-glucanase-like","exon_number": "1"}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)