Der Beitritt Wert(Liste) von <key, value> Wörterbuch
Habe ich ein Wörterbuch im format {'string-Wert-Schlüssel:[Liste der Werte]}. Für einen bestimmten Schlüssel einen Wert, würde ich mag, um den Wert als string. Hier ist das Beispiel:
>>> simpleDict= {'DDL_TABLE1':['create table bla', ' columns bla bla'], 'DML_TABLE1': ['insert into bla', ' values bla']}
>>> simpleDict
{'DDL_TABLE1': ['create table bla', ' columns bla bla'], 'DML_TABLE1': ['insert into bla', ' values bla']}
>>> sqlQry= " ".join(value for key, value in simpleDict.items() if 'DDL' in key)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, list found
>>> sqlQry= " ".join(value for key, value in simpleDict.items() if 'DDL' in key)
Ich bin nicht in der Lage zu verstehen, warum ich immer diese Fehlermeldung, wenn der Wert eine Liste von string-Werten.
InformationsquelleAutor name_masked | 2013-06-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bewegen Sie die join-innen:
Test:
Bearbeiten, basierend auf Kommentar
Dies ist einfacher mit einer Liste Verständnis vs generator.
Ihre Originale als LC:
Ist die Erstellung einer Liste von strings. Wenn Sie versuchen, und verwenden Sie join:
produziert den Fehler, den Sie sah.
OK, je nachdem, was Ihre volle Daten Aussehen mag, Sie kann es tun, zwei joins:
Wenn Sie nur wollen, eine große Zeichenfolge, die mehrere Verknüpfungen ist nicht das Ende der Welt.
Wenn Sie nur auf der Suche für eine Sache, die Sie tun können:
Wenn Sie den Umgang mit mehreren hits in den data/mehrere verwendet, verwenden Sie eine Schleife:
Wenn die Daten "Nadel im Heuhaufen" - Typ, eine Schleife verwenden, und brechen, wenn Sie finden, was Sie suchen.
"".join(list(' '.join(value) for key, value in simpleDict.items() if 'DDL' in key))
InformationsquelleAutor dawg
" ".join()
rechnet mit einer wiederholenden Zeichenfolgen und Ihren generator Erträge Listen von Zeichenfolgen, so dass Sie am Ende mit einem Aufruf wie" ".join([['create table bla', ' columns bla bla']])
.Da sieht es aus wie Sie nur erwarten, dass ein einzelner Schlüssel übereinstimmen, werden Sie wahrscheinlich nicht wollen, ein generator für diesen. Ich würde Folgendes vorschlagen:
InformationsquelleAutor Andrew Clark
Vielleicht wollte beitreten, die Ergebnisse der Wert:
auf den moment, in dem Sie versuchen beizutreten, eine Liste von Listen..
InformationsquelleAutor Andy Hayden