gpt4 book ai didi

for 循环中的 Python 变量返回 TypeError

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:39 24 4
gpt4 key购买 nike

我正在调用一个函数,需要循环遍历一个范围,为该范围内的每个值调用该函数。最大值由与我遇到问题的函数不同的函数 (findPageCount()) 返回。

对于 MakeRequest(),我可以使用硬编码的值来运行它,它工作得很好。当我添加 for 循环并将整数传递给函数的两行时,我在底部列出了错误。我认为这是一个很小的格式差异,但到目前为止我还没有成功追踪到它。

目标是将 for 循环中的 i 值传递到 xml 字符串中的请求中,以便显示下一页并传递到 f = open 语句中,以便为该页面创建一个新文件。

我感谢提供的任何帮助。

def MakeRequest(i):
# some code to call api removed
xml_string = "<list><FilterItems><FilterItem attribute='pageNumber' value='%d' /></FilterItems><SortItems><SortItem attribute ='activity_aud_mem_id' sortOrder='0'/></SortItems></list>" % i

f = open('/Users/output_test_%d.txt', 'w') % i
for line in r:
try:
f.write('%s\n' % line)
except UnicodeEncodeError:
pass

f.close()

max_page = findPageCount()

for i in range(0, max_page):
MakeRequest(i);

我在 f = open 行收到以下错误。

TypeError: "unsupported operand type(s) for %: 'file' and 'int'"

最佳答案

使用这个:

f = open('/Users/output_test_%d.txt' % i, 'w')

字符串格式化操作符 % 作用于前面的字符串,所以你必须把它直接放在它后面。

我建议像这样重新格式化整个 block :

with open('/Users/output_test_%d.txt' % i, 'w') as f:
for line in r:
try:
f.write('%s\n' % line)
except UnicodeEncodeError:
pass

那么你不需要f.close()

关于for 循环中的 Python 变量返回 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7818153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com