JSON 文件读取错误:write() 参数必须是 str,而不是生成器
Error in JSON file reading : write() argument must be str, not generator
我正在读取 JSON 文件中的内容并将其附加到文本文件中。我收到以下错误:
' write() 参数必须是 str,而不是生成器 ' 当我 运行 这段代码并且我无法更正它时。
with open('stackExchangeAPI.json','r') as json_file:
tags_list = []
data = json.load(json_file)
for i in range(0,99):
for j in range(0,99):
tags = data[i]["items"][j]["tags"]
with open('tags.txt','a+') as tags_file:
tags_file.seek(0)
d = tags_file.read(100)
if len(d) > 0 :
tags_file.write("\n")
tags_file.write(f'{tags[i]}' for i in range(0,(len(tags)-1)))
错误是最后一行'tags_file.write(f'......)'
有人可以帮我改正吗?
正如它所说,您正在尝试 write
生成器,您必须首先将其转换为字符串,可能使用 join
:
out = ''.join(f'{tags[i]}' for i in range(0,(len(tags)-1)))
tags_file.write(out)
您正在尝试将 for 循环写入文件。尝试将最后一行更改为:
[tags_file.write(f'{tags[i]}') for i in range(0,(len(tags)-1))]
我正在读取 JSON 文件中的内容并将其附加到文本文件中。我收到以下错误:
' write() 参数必须是 str,而不是生成器 ' 当我 运行 这段代码并且我无法更正它时。
with open('stackExchangeAPI.json','r') as json_file:
tags_list = []
data = json.load(json_file)
for i in range(0,99):
for j in range(0,99):
tags = data[i]["items"][j]["tags"]
with open('tags.txt','a+') as tags_file:
tags_file.seek(0)
d = tags_file.read(100)
if len(d) > 0 :
tags_file.write("\n")
tags_file.write(f'{tags[i]}' for i in range(0,(len(tags)-1)))
错误是最后一行'tags_file.write(f'......)'
有人可以帮我改正吗?
正如它所说,您正在尝试 write
生成器,您必须首先将其转换为字符串,可能使用 join
:
out = ''.join(f'{tags[i]}' for i in range(0,(len(tags)-1)))
tags_file.write(out)
您正在尝试将 for 循环写入文件。尝试将最后一行更改为:
[tags_file.write(f'{tags[i]}') for i in range(0,(len(tags)-1))]