Я пытаюсь написать функцию, которая автоматически устанавливает HTML файл, используя информацию из списка, который я создал. Этот фрагмент ниже является частью многострочной строки.
'"""...
<tr>
<td>10</td>
<th>"""+str(List_Data[9])+"""</th>
<th>"""+str(Extra_Data[9])+"""</th>
</tr>
</table>
..."""'
Extra_Data - это список рейтингов числа, поэтому Extra_Data [9] = 7.2. Когда я запускаю код, я получаю следующую ошибку;
'<th>"""+str(Extra_Data[9])+"""</th>
TypeError: can only concatenate str (not "list") to st'
Я не уверен, как еще я мог заставить это работать, поскольку str (Extra_Data [9]) не делает этого трюка, и это единственный способ, которым я могу думать, чтобы все мои перечисленные данные были отделены от HTML-кода эффективно. Любая помощь будет оценена!
Заранее спасибо.
Python имеет действительно удобный метод форматирования строк .format()
, посмотрите здесь. Все, что вам нужно сделать, это нечто вроде:
a = """
<tr>
<td>10</td>
<th>{0}</th>
<th>{1}</th>
</tr>
</table>
""".format(List_Data[9], Extra_Data[9])
print a
Числа в swirly brackets {n}
являются заполнителями для аргумента в n-м индексе функции .format()
.
Чтобы сделать этот шаг дальше, вы можете перебирать свои списки данных для создания каждой строки программно:
Table_Array = list()
for index, value in enumerate(List_Data):
Table_Array.append("""
<tr>
<td>{0}</td>
<th>{1}</th>
<th>{2}</th>
</tr>
""".format(index, List_Data[index], Extra_Data[index])
Итак, в моих сумасшедших попытках решить эту проблему. Я изменил эту линию; <th>"""+str(float(Extra_Data[9]))+"""</th>
а затем он сработал. Я понятия не имею, почему так я поменял его на оригинальную линию, а затем продолжал работать. Я очень смущен, почему это произошло, но, как сейчас, мой код работает, и он так же, как и когда он не работал. Я не знаю, почему и как.
str
?str
вlist
(но не наоборот) , И даже еслиstr
ничего не делает,Extra_Data[9]
должна бытьfloat
а неlist
.