TypeError: Sequenzelement 0: erwarteter String, int gefunden

Ich versuche, Daten aus einem Wörterbuch in eine Datenbank einzufügen. Ich möchte die Werte durchlaufen und sie je nach Datentyp entsprechend formatieren. Hier ist ein Ausschnitt des Codes, den ich verwende:

def _db_inserts(dbinfo):
    try:
        rows = dbinfo['datarows']

        for row in rows:
            field_names = ",".join(["'{0}'".format(x) for x in row.keys()])
            value_list = row.values()

            for pos, value in enumerate(value_list):
                if isinstance(value, str):
                    value_list[pos] = "'{0}'".format(value)
                elif isinstance(value, datetime):
                    value_list[pos] = "'{0}'".format(value.strftime('%Y-%m-%d'))

            values = ",".join(value_list)

            sql = "INSERT INTO table_foobar ({0}) VALUES ({1})".format(field_names, values)

    except Exception as e:
        print 'BARFED with msg:',e

Wenn ich den Algo mit einigen Beispieldaten ausführe (siehe unten), erhalte ich die Fehlermeldung:

TypeError: Sequenzelement 0: erwarteter String, int gefunden

Ein Beispiel für value_list-Daten, die den obigen Fehler ergeben, ist:

value_list = [377, -99999, -99999, 'f', -99999, -99999, -99999, 1108.0999999999999, 0, 'f', -99999, 0, 'f', -99999, 'f', -99999, 1108.0999999999999, -99999, 'f', -99999, 'f', -99999, 'f', 'f', 0, 1108.0999999999999, -99999, -99999, 'f', 'f', 'f', -99999, 'f', '1984-04-02', -99999, 'f', -99999, 'f', 1108.0999999999999] 

Was mache ich falsch?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage