2016-07-01 2 views
-1

Я создаю скрипт Python для превращения CSV в файл GeoJSON, однако я хочу использовать его снова с различными наборами данных и не хочу ничего жестко кодировать. Я пытаюсь передать список элементов в строковый форматтер в цикле. Я продолжаю получать ошибки и вижу, что Python может принимать список как аргумент в функции и перебирать его по отдельности, но, похоже, он не может сделать это с помощью string formers.Передача списка в форматирование строки в Python

Как передать неизвестное количество аргументов в форматирование строк в цикле?

iter = 0 
for row in rows: 
    iter += 1 
    if iter >= 2: 
    latitude = lat_long_location["latitude"] 
    longitude = lat_long_location["longitude"] 
    property_arr = [row[longitude], row[latitude]] 
    item_index = 0 
    for ind, item in enumerate(row): 
     if ind is latitude or ind is longitude: 
     print("next") 
     else: 
     property_arr.append(item) 
    #output += template.format(*property_arr) 
    output += template % (*property_arr) 
+0

Что такое 'next', которое должно быть сделано? Также использование 'is latitude' и' longitude' - плохие идеи. 'is' проверяет личность объекта –

+0

oops, я имел в виду печать (« следующая »). Спасибо что подметил это! –

+0

@NicholasGati: Записанный код: 'template.format (* property_arr)' должен был сработать для вас (при условии, что шаблон подходит). – SuperSaiyan

ответ

0

Это не то, как позиционное расширение работает. Но в любом случае это неправильный инструмент.

output += template % tuple(property_arr) 
+0

Это работает! Я довольно новичок в Python, поэтому я не знал об этом, и это меня насторожило. Спасибо огромное! –

+0

@PadraicCunningham: Преобразование последовательности целей формата в кортеж. –

Смежные вопросы