Получение печально известного 'str' object has no attribute 'write'
.Здесь я не могу сказать, почему python считает мой файловый объект out_file
строкой.Вероятно, что-то еще я пропускаюОшибка отмечена в закомментированной строке.
PS этот код предназначен для печати более удобной для чтения версии произвольного json.
import json
import os
json_path = os.path.normpath(r"my_dir")
#---------------------------------------------------------------------
def json_break(data, tab_str, out_file):
k_str = tab_str
if type(data) is list:
i = 0
for i in range(len(data)):
json_break(data[i], tab_str + ' ', str(data[i]))
i += 1
elif type(data) is dict:
for k in data:
if type(data[k]) is str:
k_str += k + ': ' + data[k]
out_file.write(k_str)
else:
k_str += k + ':\n'
out_file.write(k_str) # 'str' object has no attribute 'write'
json_break(data[k], tab_str + ' ', out_file)
return None
#---------------------------------------------------------------------
with open(os.path.join(json_path,'my_json.json')) as in_file:
data = json.load(in_file)
out_file = open(os.path.join(json_path,'print_json.txt'),"w")
tab_str = ' '
json_break(data, tab_str, out_file)
out_file.close()