Я еще не привык делать вещи на языке Python, но я почти уверен, что следующий скрипт может быть сжат. Я не ищу оптимизации скорости, я ищу более читаемый код. Делайте это медленнее, мне все равно, но каковы некоторые способы сделать этот вид более похожим на Python.
Я просто читаю в CSV-файле, заполненном почтовыми индексами, и заполняю базу данных 23 столбцами. Много печатать. Я также не люблю жестко кодировать такие вещи, как индекс строки. Кроме того, multis = '% s,' * 23, за которым следует multis = multis [: - 2], выглядит грязным.
Будем рады увидеть, что некоторые из вас могут придумать.
#!/usr/bin/python
import csv
import MySQLdb
db = MySQLdb.connect(host="localhost", user="root", db="test")
c = db.cursor()
f_csv = 'zip-codes-database-STANDARD.csv'
csvReader = csv.reader(open(f_csv))
ziplist = []
multis = '%s, '*23
multis = multis[:-2]
for row in csvReader:
c.execute("""INSERT INTO lock_zipcodes_complete
(`zipcode`, `city`, `state`, `county`, `areacode`,
`citytype`, `city_alias_abbreviation`,
`city_alias_name`, `latitude`, `longitude`, `timezone`,
`elevation`, `county_fips`, `dst`,
`preferred_last_line_key`, `classification_code`,
`multicounty`, `state_fips`, `city_state_key`,
`city_alias_code`, `primary_record`, `city_mixed_case`,
`city_alias_mixed_case`) VALUES(""" + multis + ')',
(row[0], row[1], row[2], row[3], row[4], row[5], row[6],
row[7], row[8], row[9], row[10], row[11], row[12],
row[13], row[14], row[15], row[16], row[17], row[18],
row[19], row[20], row[21], row[22]))