12345678910111213141516171819202122232425262728293031323334 |
- import json
- import re
- def str_to_json(content: str) -> dict:
- """
- 解析日志文件中的JSON格式字符串
-
- Args:
- log_content: 日志内容字符串
-
- Returns:
- 解析后的JSON数据(字典类型)
- """
- try:
- # 1. 清理输入字符串
- # 移除可能的前导和尾随空白
- content = content.strip()
-
- # 2. 提取JSON部分
- # 使用正则表达式匹配最外层的花括号及其内容
- json_pattern = r'{[^{}]*(?:{[^{}]*}[^{}]*)*}'
- match = re.search(json_pattern, content)
- if not match:
- raise ValueError("未找到有效的JSON内容")
-
- json_str = match.group(0)
-
- # 3. 解析JSON
- return json.loads(json_str)
-
- except json.JSONDecodeError as e:
- raise ValueError(f"JSON解析错误: {str(e)}")
- except Exception as e:
- raise ValueError(f"解析错误: {str(e)}")
|