从多行字符串到 Pandas 数据框的转换异常困难

问题描述 投票:0回答:1

我使用chatgpt AI助手从PDF中提取数据,它成功了。然而,我正在努力将此字符串输出转换为 Python 字典,尽管最终目标是使其成为 pandas 数据框架。

类型(结果)= str,如果我打印(结果),输出为:

```python
{
  'ReportDate': '11/30/2022',
  'BankName': 'Bank ABC',
  'Key 1': 194820,
  'Key 2': 24778,
  'Key 3': 1281778,
  'Key 4': 10943806,
  'in_thousands': True,
  'ReportName':'Report1'
}
```

ast.literal_eval(result)、eval(result) 都不起作用。

尝试和结果:

尝试1:

y = eval(result)

尝试2:

import ast
result = message_content.value
temp_result =  result.replace('python', '', 1).strip()
result_dict = ast.literal_eval(temp_result)

两次尝试都会导致语法错误:指向的语法无效

```python
^
python type-conversion multilinestring
1个回答
0
投票

谢谢,是的,我确实想多了,它就像整个文本块是一个字符串一样简单,三引号只是字符串中的字符。因此,就像建议的那样,只需删除单词 python、三引号和换行符并使用 ast.literal_eval() 进行转换即可。

result = message_content.value
result = result.replace("```python", "").replace("```", "").replace('\n', '').strip()
result_dict = ast.literal_eval(result)
© www.soinside.com 2019 - 2024. All rights reserved.