текст с помощью .format в блокноте Jupyter - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь использовать приведенный ниже код в Jupyter Notebook.Но когда я запускаю его, он выдает ошибку в строке с text.format.Я никак не могу решить эту ошибку ... Кто-нибудь знает, что может происходить?

disp_med = 69.658
perf_med = 85.6974
qual_med = 95.654
oee_16 = (disp_med * perf_med * qual_med) / 10000

arq_escrita = open('oee_2016.txt', 'w')
texto = '''var data=[{"category":"Indice OEE","num":{0}, "num2": 100},
          {"category":"Qualidade","num":{1}, "num2": 100},
          {"category":"Performance","num":{2}, "num2": 100},
          {"category":"Disponibilidade","num":{3}, "num2": 100}];'''
texto = texto.format('{:.0f}'.format(oee_16),'{:.0f}'.format(qual_med), '{:.0f}'.format(perf_med), '{:.0f}'.format(disp_med))
arq_escrita.write(texto)
arq_escrita.close()

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Проблема в том, что ваша строка содержит скобки ({ / }) как часть json, поэтому format считает, что их следует заменить.Вы можете решить проблему, заменив эти скобки двойными скобками {{ / }}:

texto = '''var data=[{{"category":"Indice OEE","num":{0}, "num2": 100\}},
          {{"category":"Qualidade","num":{1}, "num2": 100}},
          {{"category":"Performance","num":{2}, "num2": 100}},
          {{"category":"Disponibilidade","num":{3}, "num2": 100}}];'''
0 голосов
/ 25 ноября 2018

похоже, что ваша ошибка следующая:

Traceback (most recent call last):
  File "file.py", line 11, in <module>
    texto = texto.format('{:.0f}'.format(oee_16),'{:.0f}'.format(qual_med), '{:.0f}'.format(perf_med), '{:.0f}'.format(disp_med))
KeyError: '"category"'

Вы не можете использовать формат в предоставленном тексте, так как он не может определить, какой из {something} форматируется икоторые игнорируются (поэтому ожидается, что вы предоставите значение для «Категория»), рассмотрите возможность генерации результата путем фактического создания данных, предоставленных вами в python, а затем преобразуйте их в текст, используя библиотеку json.

Лучшее решение, как указано в комментариях: Избегайте {}, удвоив их ({{}}) для деталей, которые не нуждаются в замене.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...