我是一名初学者,我正在尝试在for循环中将以下变量写入文件,但是当它是生成器时,它试图以str的形式编写。尝试第二种方法时,我还会收到不受支持的操作数类型。
retVal
我也尝试了以下方法:
AngularFirestoreCollection<T>
它给出的错误是:
Observable
答案 0 :(得分:2)
将我的评论全部放进去,下面的调整语句应该会很好。
这将对文件执行一次写入,该文件将预先准备所有输出(包括设置generator=False
),并通过加入所有值来一次写入所有内容:
divdir = conn.extend.standard.paged_search('cn = All.DL Div DSS Directors, ou = Distribution Lists, ou = Exchange, dc=google,dc=corpad,dc=net', '(objectClass=*)', attributes=['member'], generator=False)
directors = map(str, divdir) #Stringify each director from generator
directors_str = '\n'.join(directors) #Join the list of directors with a newline
with open('test2.txt', 'w') as file:
file.write(directors_str) #Write to file
答案 1 :(得分:2)
尝试使用str()
将字典转换为字符串。应该看起来像这样:
for b in divdir:
with open ('test2.txt', 'w') as file:
file.write (str(b))
对于该TypeError
,当您调用b.get('divdir')
时,结果为None
。
您可能要仔细检查您使用的是正确的键名,还是可以提供一个默认值,如果字典中不包含该键的话。
x = b.get('divdir', 'some default value')
如果键divdir
在b
中不存在,则x
的值将为“某些默认值”。
答案 2 :(得分:1)
您可以使用text
库将json
对象写入文件。试试这个:
dict