In meiner Formular-Post-Anfrage greife ich alle Formularinformationen, aber es scheint, dass es einige leere Schlüssel und Werte gibt. Ich möchte alle Instanzen von leeren Schlüsseln und Werten entfernen. Das was ich bisher habe und es funktioniert offensichtlich nicht.So entfernen Sie dict Schlüssel, wenn der Wert leer ist
post_dict = dict(request.POST)
item_data = {}
for key, value in post_dict.items():
if value is None:
del post_dict[key]
field = key.split('[')[1].replace(']', '')
item_data[field] = ''.join(value)
print(item_data)
Was der Druck item_data wie folgt aussieht:
{'': '', 'username': 'johndoe', 'email': '[email protected]', ...
Wenn Sie den Schlüssel löschen, wird es seinen jeweiligen Wert löschen? Wie kann ich leere Schlüssel und Werte loswerden?
Willst du 'if value == '''? – JETM
'wenn der Wert None ist, wird nur das genaue Objekt' None' abgeglichen. Wenn Sie nur die Werte [false-y] (https://docs.python.org/2/library/stdtypes.html#truth-value-testing) entfernen möchten ('None',' '' '' '' ' , '[]', ...) verwenden 'falls nicht Wert:'. – jonrsharpe
Nach dem Löschen sollten Sie wahrscheinlich mit der nächsten Iteration der Schleife fortfahren. – Barmar