【发布时间】:2014-03-24 13:20:18
【问题描述】:
我有一种特定格式的数据(从splunk> 导出),它是 CSV 和命名字段的混合体。我想了解在 Python 中是否可以通过模板(或简化的、普通人可以理解的正则表达式)解析此类数据
"Harry Potter", "book", "12 Mar 2014 note=""good"" language=""English"""
"Forrest Gump", "movie", "14 March 2015 note=""good"" language=""Aztec"""
如您所见,第一个字段以逗号分隔,然后是一个以日期开头的长字符串,然后是一些命名字段(note、language)。
我想仅从命名字段构建一个字典列表:
[
{'note': 'good', 'language'='English'},
{'note': 'good', 'language'='Aztec'}
]
解析 CSV 后,我得到了最后一个字段(例如第一行的 "12 Mar 2014 note=""good"" language=""English""")然后我被卡住了,我能想到的唯一解决方案是尝试在正则表达式中描述该行(这很可怕:)。即使我设法提取了元组,如何将它们翻译成字典?
【问题讨论】:
-
如果最后一个字段不是特别复杂并且在您指定的格式中几乎是固定的,那么您可以继续使用正则表达式来获取数据。
-
命名字段中的文本是否可以包含空格?例如。
note=""very good"". -
@WarrenWeckesser:是的,对不起,我应该说清楚。
标签: python regex parsing csv dictionary