字符串格式的元组列表转换为元组列表转换



我有一个元组列表,其中元组是字符串格式

data_list = ["('https://www.test.org/', 'testing', 'test1', 'test1')", "('https://testing2.com/', 'testing', 'test2', 'test2')"]

要将其转换为元组列表,我使用以下代码

for val in data_list:
valx = ast.literal_eval(val)

但过一段时间,我会得到带有Undefined参数的元组列表,如下所示。

["('https://www.test.org/', 'testing', Undefined, Undefined)", "('https://testing.com/', 'testing', Undefined, Undefined)"]

在这种情况下,使用上述代码将给出以下错误

flask    |     raise ValueError(f'malformed node or string: {node!r}')
flask    | ValueError: malformed node or string: <_ast.Name object at 0x7fab4d78ab80>

我不知道如何处理这个错误。在Undefined的位置,一个空字符串就足够了。

None替换它怎么样?(在我使用eval而不是ast.literal_eval:的示例中

data_list = ["('https://www.test.org/', 'testing', Undefined, 'test1')", "('https://testing2.com/', 'testing', 'test2', 'test2')"]
for val in data_list:
val = val.replace('Undefined', 'None')
valx = eval(val)
print(valx)

您可能希望使用正则表达式来区分Undefined'Undefined'(字符串(

最新更新