У меня есть функция цикла, которая каждый раз возвращает сложный словарь, который можно упростить следующим образом:
d= {
"key1":"A", "key2":"B", "cumulative score":0.1, "direct score":0.4, "depth":0,
"chain":[
{"key1":"A1", "key2":"B1", "cumulative score":0.2, "direct score":0.5, "depth":1,
"chain":[{"key1":"A11", "key2":"B11","cumulative score":0.3, "direct score":0.6, "depth":2, "chain":[]},
{"key1":"A12", "key2":"B12","cumulative score":0.5, "direct score":0.7, "depth":2, "chain":[]}]
},
{"key1":"A2", "key2":"B2","cumulative score":0.1, "direct score":0.2,"depth":1,
"chain":[None,
{"key1":"A22", "key2":"B22","cumulative score":0.1, "direct score":0.5, "depth":2, "chain":[]}]
}
]
}
Мой настоящий словарь может доходить до «глубины» = 10+ и может содержать намного больше данных. Так как мне нужно вручную проверить возвращаемое значение в Excel, я нахожу копирование окна вывода в буфер обмена, а затем в Excel можно создать четкий способ отображения данных следующим образом:
Так что я хочу добавить такую функцию, чтобы сделать это в конце моей функции цикла. Я попробовал это
def add_to_clipboard(text):
import tempfile
with tempfile.NamedTemporaryFile("w") as fp:
fp.write(text)
fp.flush()
command = "pbcopy < {}".format(fp.name)
os.system(command)
У меня такой вопрос: я получил следующую ошибку, и я не знаю, как сохранить данные в буфер обмена, чтобы преуспеть. Кто-нибудь может помочь? Благодаря.
TypeError Traceback (most recent call last)
<ipython-input-102-8afb2d14c221> in <module>()
----> 1 add_to_clipboard(result_test)
<ipython-input-101-89cb10853a94> in add_to_clipboard(text)
2 import tempfile
3 with tempfile.NamedTemporaryFile("w") as fp:
----> 4 fp.write(text)
5 fp.flush()
6 command = "pbcopy < {}".format(fp.name)
~\AppData\Local\Continuum\Miniconda3\envs\Battery\lib\tempfile.py in func_wrapper(*args, **kwargs)
481 @_functools.wraps(func)
482 def func_wrapper(*args, **kwargs):
--> 483 return func(*args, **kwargs)
484 # Avoid closing the file as long as the wrapper is alive,
485 # see issue #18879.
TypeError: write() argument must be str, not dict