2024-09-29 01:30:42 发布
网友
我有一个字符串列表:
listofdictrefs = ["ws['D4']", "ws['H72']", "ws['B4']"]
这些字符串实际上是字典引用。我想将该列表转换为变量引用,以便将这些变量写入csv行:
csvwriter.writerow(listofdictrefs)
当然,现在它把列表写成字符串。我想知道如何引用与该名称匹配的变量(在本例中是字典条目)。你知道吗
如果ws是dictionary变量的实际名称,那么可以使用eval写出它,尽管这很容易出错。即使在不处理不受信任的输入的情况下(所以,让我们把安全问题放在一边),当可以静态检查时,也会将语法和大量语义分析推到运行时。尽管如此:
ws
eval
csvwriter.writerow(eval(r) for r in listofdictrefs)
但是,如果可能的话,最好保留一个键列表并为wsdict编制索引
keys = ['D4', 'H72', 'B4'] csvwriter.writerow(ws[k] for k in keys)
eval很少是正确的解决方案。你知道吗
在这种情况下可以使用eval。不过,一定要小心使用eval运行未检查的代码!你知道吗
listofdictrefs = ["ws['D4']", "ws['H72']", "ws['B4']"] ws = {'D4' : 100,'H72' : 50,'B4' : 25} for ref in listofdictrefs: print eval(ref)
你知道吗
100 50 25
如果
ws
是dictionary变量的实际名称,那么可以使用eval
写出它,尽管这很容易出错。即使在不处理不受信任的输入的情况下(所以,让我们把安全问题放在一边),当可以静态检查时,也会将语法和大量语义分析推到运行时。尽管如此:但是,如果可能的话,最好保留一个键列表并为
ws
dict编制索引eval
很少是正确的解决方案。你知道吗在这种情况下可以使用
eval
。不过,一定要小心使用eval
运行未检查的代码!你知道吗你知道吗
相关问题 更多 >
编程相关推荐