Я пытаюсь перенаправить вывод json .dump (), который печатает содержимое на стандартный вывод. Это происходит от функции, к которой у меня нет доступа (на самом деле, но я не должен ее изменять)
import json
import sys
#This is defined in an external module which I cannot/should not modify
def my_func():
my_dict = {"my_key": "my value"}
return json.dump(my_dict,sys.stdout)
#x has no value assigned, the dict goes printed directly to stdout.
x = my_func()
#Prints none
print(x)
Можно ли как-то перехватить вывод stdout и перенаправить его в переменную? Я знаю, что изменение модуля для использования json .dumps () вместо json .dump () должно сработать, но, опять же, я не могу изменить вызываемый модуль.