Как перенаправить вывод json .dump () в переменную в Python - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь перенаправить вывод 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 () должно сработать, но, опять же, я не могу изменить вызываемый модуль.

...