Python 自动拆分具有异常字符的CSV
虽然我可以使用Python操作CSV文件,但如果它是严格以逗号分隔的,则不会出现问题,但我使用的这种格式遇到了一个巨大的问题。它是逗号分隔的,但最后一列是由大约六个逗号组成的网格的圆锥曲线,如下图所示:Python 自动拆分具有异常字符的CSV,python,Python,虽然我可以使用Python操作CSV文件,但如果它是严格以逗号分隔的,则不会出现问题,但我使用的这种格式遇到了一个巨大的问题。它是逗号分隔的,但最后一列是由大约六个逗号组成的网格的圆锥曲线,如下图所示: "{""EvidenceDetails"": [{""MitigationString"": """", ""Criticality"": 2, ""Timestamp"": ""2018-05-07T13:51:02.000Z"", ""CriticalityLabel"": ""Suspic
"{""EvidenceDetails"": [{""MitigationString"": """", ""Criticality"": 2, ""Timestamp"": ""2018-05-07T13:51:02.000Z"", ""CriticalityLabel"": ""Suspicious"", ""EvidenceString"": ""1 sighting on 1 source: item. Most recent item: Item4: item. I've never seen this IP before. Most recent link (May 7, 2018): link"", ""Rule"": ""Recent""}, {""MitigationString"": """", ""Criticality"": 2, ""Timestamp"": ""2018-05-09T05:32:41.316Z"", "etc"}]}"
其他列是标准的逗号分隔,但这一列太乱了。我只需要拉出时间戳“YYYY-MM-DD”;没有别的了。然而,我似乎想不出一种方法来去除不必要的字符
有什么建议吗?我是专门使用Python的,但是如果还有什么我应该关注的,请告诉我
谢谢 您看到的是JSON格式,因此请尝试使用
JSON
模块:
import json
# if data is in a file
with open('your filename here','r') as f:
data = json.load(f)
# if data is stored in a string variable
data = json.loads(stringvar)
数据变量现在应该以更容易访问的格式包含数据。使用正则表达式直接提取所需的日期戳可能比拆分/剥离更容易 以下是您在问题中提供的行的示例:
import re
pattern_to_use = "[0-9]{4}-[0-9]{2}-[0-9]{2}"
string_to_search = """""{""EvidenceDetails"": [{""MitigationString"": """", ""Criticality"": 2, ""Timestamp"": ""2018-05-07T13:51:02.000Z"", ""CriticalityLabel"": ""Suspicious"", ""EvidenceString"": ""1 sighting on 1 source: item. Most recent item: Item4: item. I've never seen this IP before. Most recent link (May 7, 2018): link"", ""Rule"": ""Recent""}, {""MitigationString"": """", ""Criticality"": 2, ""Timestamp"": ""2018-05-09T05:32:41.316Z"", "etc"}]}"""""
print(re.findall(pattern, string_to_search))
这将按日期戳在字符串中出现的顺序打印包含日期戳的数组(即,['2018-05-07','2018-05-09']
)
有关正则表达式的更多信息,请参阅。哦,这更合理。。。我知道他们在后端使用JSON,但我不知道这是直接转换成CSV。好吧,我来试一试!完全忘记了正则表达式。我来试一试,谢谢!