J'ai une chaîne SQL, par exempleRemplacement une partie de chaîne avec Python
SELECT * FROM benchmark WHERE xversion = 1.0
Et en fait, xversion est variable aliasées et self.alias a toutes les informations d'alias quelque chose comme
{'CompilationParameters_Family': 'chip_name', 'xversion': 'CompilationParameters_XilinxVersion', 'opt_param': .... 'chip_name': 'CompilationParameters_Family', 'CompilationParameters_Device': 'device'}
En utilisant cet alias, je devrais changer la chaîne comme suit.
SELECT * FROM benchmark WHERE CompilationParameters_XilinxVersion = 1.0
Pour cette modification, j'ai trouvé ce qui suit.
def processAliasString(self, sqlString):
components = sqlString.split(' ')
resList = []
for comp in components:
if comp in self.alias:
resList.append(self.alias[comp])
else:
resList.append(comp)
resString = " ".join(resList)
return resString
Mais, je m'attends à un meilleur code ne pas utiliser pour la boucle. Qu'est-ce que tu penses?
Je peux voir une faiblesse potentielle dans votre code. Pensez à ce qui se passe si 'self.alias' est dit, comme ceci:' {'SELECT': 'DROP', '*': 'TABLE', 'FROM': '', 'WHERE': '; } '. –