【发布时间】:2024-05-01 07:50:02
【问题描述】:
示例事件日志文件的第一行,这里我已经成功提取了除了最后一个键值对之外的所有内容-
{"event_type":"ActionClicked","event_timestamp":1451583172592,"arrival_timestamp":1451608731845,"event_version":"3.0",
"application":{"app_id":"7ffa58dab3c646cea642e961ff8a8070","cognito_identity_pool_id":"us-east-1:
4d9cf803-0487-44ec-be27-1e160d15df74","package_name":"com.think.vito","sdk":{"name":"aws-sdk-android","version":"2.2.2"}
,"title":"Vito","version_name":"1.0.2.1","version_code":"3"},"client":{"client_id":"438b152e-5b7c-4e99-9216-831fc15b0c07",
"cognito_id":"us-east-1:448efb89-f382-4975-a1a1-dd8a79e1dd0c"},"device":{"locale":{"code":"en_GB","country":"GB",
"language":"en"},"make":"samsung","model":"GT-S5312","platform":{"name":"ANDROID","version":"4.1.2"}},
"session":{"session_id":"c15b0c07-20151231-173052586","start_timestamp":1451583052586},"attributes":{"OfferID":"20186",
"Category":"40000","CustomerID":"304"},"metrics":{}}
大家好,我正在尝试从事件日志文件中提取内容,如附图所示。至于要求我必须获取customer ID、offer id、category 这些是我需要提取的重要变量来自此事件日志文件。这是 csv 格式的文件。我尝试使用正则表达式,但它不起作用,因为您可以观察到每一列的格式都不同。如您所见,第一行有categorycustomer idoffer id,第二行完全空白,在这种情况下,正则表达式将不起作用,除此之外我们必须考虑我们必须考虑所有可能的条件,我们有 14000 个 sample.in 事件日志文件 ...#Jason # 解析 #Python #Pandas
【问题讨论】:
-
这是纯文本文件吗?每行是否以
{}开头和结尾?如果是这样,您似乎可以逐行读取文件并使用literal_eval将每一行转换为 Pythondict对象。 -
您能否提供数据日志的实际片段而不是图像格式?您不希望我们一一输入您的数据,对吧?
-
是的,之前它是 txt 格式。它是我从事件日志文件 event_type event_timestamparrival_timestamp event_version application { app_id cognito_identity_pool_id } client{} device{} session{} attributes{}
-
为什么图片中有单引号,文字中有双引号? (后者可以是 JSON 格式。)
-
@ayhan 图像文件为 csv 格式,而 in text 格式为 .txt 格式...从 .txt 文件中提取后,我将每个键分隔为单个 csv 文件。
标签: python pandas text-parsing string-parsing text-extraction