[英]IndexError: list index out of range while using for-loop
While running for
loop in below code in python getting list index out of range error.在 python 中的以下代码中运行
for
循环时,出现列表索引超出范围错误。 Also, please let me know if the for loop can be written in a better way.另外,如果可以用更好的方式编写 for 循环,请告诉我。
Error:- IndexError-Traceback (most recent call last)
<ipython-input-296-32d392aacb61> in <module>
---> 22 a = workbook.connections[0]
IndexError: list index out of range
Code:代码:
import tableauserverclient as TSC
import pandas as pd
tableau_auth = TSC.PersonalAccessTokenAuth('{Token_Name}',
'{Token_Secret}' , site_id="{Site}")
server = TSC.Server('Site_url',use_server_version=True)
request_options = TSC.RequestOptions(pagesize=1000)
with server.auth.sign_in(tableau_auth):
all_workbooks_items = list(TSC.Pager(server.workbooks, request_options))
workbook_id=[workbook.id for workbook in all_workbooks_items]
connection2=pd.DataFrame({"Datasource_id":connection.datasource_id,
"Datasource_name":a.datasource_name,
"Workbook Name":workbook.name} , index=[0])
for wbk_ids in workbook_id:
workbook = server.workbooks.get_by_id(wbk_ids)
server.workbooks.populate_connections(workbook)
a = workbook.connections[0]
print({a.datasource_id,a.datasource_name,workbook.name})
connection2=connection2.append({"Datasource_id":a.datasource_id,
"Datasource_name":a.datasource_name,
"Workbook Name":workbook.name} ,ignore_index=True)
server.auth.sign_out()
Instead of代替
a = workbook.connections[0]
print({a.datasource_id,a.datasource_name,workbook.name})
connection2=connection2.append({"Datasource_id":a.datasource_id,
"Datasource_name":a.datasource_name,
"Workbook Name":workbook.name} ,ignore_index=True)
use使用
if workbook.connections:
a = workbook.connections[0]
print({a.datasource_id,a.datasource_name,workbook.name})
connection2=connection2.append({"Datasource_id":a.datasource_id,
"Datasource_name":a.datasource_name,
"Workbook Name":workbook.name} ,ignore_index=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.