Условное форматирование TypeError: только массивы размера 1 могут быть преобразованы в скаляры Python - PullRequest
3 голосов
/ 14 марта 2019

Я получаю обычную ошибку при попытке применить формат, используя условный формат, и я не уверен, что будет причиной этого.В частности, проблема, кажется, вызвана попыткой применить второе условное форматирование в операторе elif.

Вот код, который вызывает проблему:

for key in dfDiff.index:
        if not(key in df_OLD.index):
          if (key in df_NEW.index):
            worksheet.conditional_format((dfDiff.index.get_loc(key)+1), 0, (dfDiff.index.get_loc(key)+1), 0, {'type': 'unique',
                                                                                                              'format': new_fmt})
        elif(key in df_NEW.index):
            worksheet.conditional_format((dfDiff.index.get_loc(key)+1), 0, (dfDiff.index.get_loc(key)+1), 0, {'type': 'unique',
                                                                                                              'format': removed_fmt})

Вот ошибкаЯ получаю:

Traceback (most recent call last):
  File "C:\Users\adam\Scripting\xlxsComparer.py", line 160, in <module>
    main()
  File "C:\Users\adam\Scripting\xlxsComparer.py", line 156, in main
    excel_diff(path_OLD, path_NEW, index_col)
  File "C:\Users\adam\Scripting\xlxsComparer.py", line 130, in excel_diff
    'format': removed_fmt})
  File "C:\Program Files\Python36\lib\site-packages\xlsxwriter\worksheet.py", line 83, in cell_wrapper
    int(args[0])
TypeError: only size-1 arrays can be converted to Python scalars
...