如何从DataFrame的message列提取JSON请求并生成单条一行的文本文件
实现方法
你可以直接用正则匹配结合pandas内置字符串方法实现,性能很高,完全满足大批量数据处理需求:
步骤1:提取请求JSON
利用str.extract匹配request data: 后的完整JSON内容:
import pandas as pd # 假设你的DataFrame变量名为df pattern = r'request data: (.*)$' df['request_json'] = df['message'].str.extract(pattern)
正则规则说明:匹配request data: 之后到行尾的所有字符,刚好对应你需要的请求内容。
步骤2:可选过滤(适配你的样例输出)
你的样例输出仅保留了seller_cd = 31056的记录,如果需要过滤可以增加如下逻辑:
import json def filter_valid_request(json_str): try: req_data = json.loads(json_str) # 按需求调整过滤条件,这里示例过滤seller_cd为31056的记录 return req_data.get('seller_cd') == '31056' except: # 解析失败的异常行直接过滤 return False # 过滤有效记录 df = df[df['request_json'].apply(filter_valid_request)]
步骤3:导出到文本文件
直接将提取的请求列导出为txt,每行一条记录:
df['request_json'].to_csv( 'requests_output.txt', index=False, header=False, encoding='utf-8' )
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

