Skip to main content
 首页 » 编程设计

Python:正则表达式问题/CSV 解析/Psycopg 嵌套数组

2024年09月03日26arxive

我在解析 Psycopg2 返回的嵌套数组时遇到问题。我正在处理的数据库返回可以具有嵌套数组作为值的记录。 Psycopg 仅解析此类值的外部数组。

我的第一个方法是用逗号分割字符串,但后来我遇到了一个问题,有时结果中的一个字符串也包含逗号,这使得整个方法无法使用。 我的下一次尝试是使用正则表达式来查找字符串中的“组件”,但后来我注意到我无法检测到数字(因为数字也可以出现在字符串中)。

目前,这是我的代码:

import re 
text = '{2f5e5fef-1e8c-43a2-9a11-3a39b2cbb45e,"Marc, Dirk en Koen",398547,85.5,-9.2, 62fe6393-00f7-418d-b0b3-7116f6d5cf10}' 
r = re.compile('\".*?\"|[\w]{8}-[\w]{4}-[\w]{4}-[\w]{4}-[\w]{12}|^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$') 
result = r.search(text) 
if result: 
    result = result.groups() 

结果应该是:

['2f5e5fef-1e8c-43a2-9a11-3a39b2cbb45e', 'Marc, Dirk en Koen', 398547, 85.5, -9.2, '62fe6393-00f7-418d-b0b3-7116f6d5cf10'] 

由于我希望此功能具有通用性,因此我无法确定参数的顺序。我只知道支持的类型是字符串、uuid、(有符号)整数和(有符号)小数。

我是否使用了错误的方法?或者有人能指出我正确的方向吗?

提前致谢!

请您参考如下方法:

Python 的原生库应该做得很好。你试过了吗?

http://docs.python.org/library/csv.html