2017-10-16 6 views
0
def multiple_dfs(item, sheets, *args): 
    """ 
    Put multiple dataframes into one xlsx sheet 
    """ 

    writer, row = args[:2] 

    response = send_request(item).content 
    df = pd.read_csv(io.StringIO(response.decode('utf-8'))) 

    df.to_excel(writer, sheets, startrow=row, index=False) 
    row += len(df.index) + 2 


def create_and_update_worksheets(): 
    """ 
    Add 'Player statistics' if the worksheet is not in file_name. 
    Otherwise, it will update the worksheet itself. 
    """ 

    os.chdir(os.path.dirname(os.path.abspath(__file__))) 

    writer = pd.ExcelWriter(file_name, engine='openpyxl') 

    for key, value in worksheets: 
    --> row = 0 
     if isinstance(value, dict): 
      values = value.values() 
      for item in values: 
    -->   multiple_dfs(item, key, writer, row) 
     else: 
      multiple_dfs(value, key, writer, row) 

    for sheet in writer.sheets.values(): 
     resize_columns(sheet) 

    writer.save() 
    writer.close() 

create_and_update_worksheetsには2つの矢印があります。第2の矢印のforループでrowが常にゼロに等しいのはなぜですか? 関数を入力し、rowの値を変更する必要があります。私はコード内の別の場所に置こうとしましたが、何も変わりませんでした。もう私は他のアイデアはありません。`row`の値を​​変更する

答えて

0

このような引数の値は変更できません。

... 
    ... 
    return len(df.index) + 2 

... 
    ... 
    row = multiple_dfs(item, key, writer, row) 
+0

感謝します、ありがとう! –

関連する問題