Tôi đang cố chèn dữ liệu từ từ điển vào cơ sở dữ liệu. Tôi muốn lặp lại các giá trị và định dạng chúng cho phù hợp, tùy thuộc vào loại dữ liệu. Dưới đây là một đoạn mã tôi đang sử dụng:LoạiError: mục chuỗi 0: chuỗi được mong đợi, int được tìm thấy
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
Khi tôi chạy algo sử dụng một số dữ liệu mẫu (xem dưới đây), tôi nhận được lỗi:
TypeError: sequence item 0: expected string, int found
Một ví dụ về dữ liệu VALUE_LIST cung cấp lỗi ở trên là:
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]
Tôi đang làm gì sai?
soulution cho bạn:. Giá trị '= "" tham gia (bản đồ (str, VALUE_LIST)) ' – ddzialak