我在解析 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 的原生库应该做得很好。你试过了吗?
