当我执行我编写的一些代码时,我遇到了一些问题。
import requests
import time
import datetime
import os
def datarequest():
url = 'http://csgoroll.com/v1/roulette/state?token=bcb78foobar7b9' # Could add a + pls str(pagesomething) to add on to the url so that it would update
sourcecode = requests.get(url) # requests the data from the site
obj = sourcecode.json()
###
str1 = ''.join(str(e) for e in obj['rolls'])
for obj['roll'] in str1:
rolldata = obj['roll'] in str1
file = open("newfile.txt", "w")
file.write(rolldata)
file.close()
file = open('newfile.txt', 'r')
print(file.read())
###
if __name__ == '__main__':
while True:
datarequest()
time.sleep(120) # these are seconds
每当我运行它时我得到错误" TypeError:write()参数必须是str,而不是bool"但是我使用join语句将它转换为字符串,我没有看到我在任何地方放置bool语句。
如果有人能给我指导如何正确地转换为字符串和int来解决我的问题,我会非常感激,以及为什么我在我的程序中遇到这个问题的一般建议。
答案 0 :(得分:1)
您在此行中写下rolldata
:
file.write(rolldata)
但你在这一行中将它设置为布尔值:
rolldata = obj['roll'] in str1
答案 1 :(得分:0)
我很确定你可以过去看看为什么会发生这种情况。您可以简单地尝试调试它,仔细检查所有内容并确保一切正常。遇到类似的问题,我喜欢给它添加过多的东西,然后慢慢将它缩小到它工作的地方。
所以,总结一下,在你的情况下,只是为了确保,只需尝试str()
开始,然后从那里继续调试。
答案 2 :(得分:0)
rolldata = obj['roll'] in str1
这将返回一个bool并分配给' rolldata'