我正在尝试打开一个json文件,然后从中读取(稍后也进行同样的操作,然后将一些json数据转储到同一文件中)。
我只是想使用一个变量作为文件名,所以我的代码如下:
layout_file = 'layouts2.json'
try:
filename = os.path.join(app.static_folder, layout_file)
with open(filename) as layout_file:
layouts = json.load(layout_file)
except:
print("could not load layouts from config file")
在我的代码看起来像这样并正常工作之前:
try:
filename = os.path.join(app.static_folder, 'layouts2.json')
with open(filename) as layout_file:
layouts = json.load(layout_file)
except:
print("could not load layouts from config file")
我得到的错误是error 'type of argument must be str or bytes not TextIOWrapper'
。
我现在真的不知道该怎么办,即使我认为这应该可以很快解决。
预先感谢!
答案 0 :(得分:0)
文件名和文件句柄都使用相同的变量layout_file
。
在编写的代码中,应该可以正常工作;但是,如果以循环或类似方式进行操作,则可能会导致两个值之间混淆。 (如果您使用mypy
,它也会抱怨。)
使用不同的变量名吗?
layout_filename = 'layouts2.json'
try:
filename = os.path.join(app.static_folder, layout_filename)
with open(filename) as layout_fh:
layouts = json.load(layout_fh)
except:
print("could not load layouts from config file")