gpt4 book ai didi

python - 奇怪的 'str' 对象不可调用 python

转载 作者:可可西里 更新时间:2023-11-01 16:30:57 25 4
gpt4 key购买 nike

大家好我的代码中我得到了这个堆栈:

Traceback (most recent call last):
File "main.py", line 30, in <module>
print nova.put_server_metadata("48f366bd-e9c9-47b5-a41f-ca9bcac2d945","labeltest","2.0")
TypeError: 'str' object is not callable

但我不知道,关于这个错误,我试图在我的方法“put_server_metadata”中打印,但它没有打印在屏幕上,请遵循代码:

主类:

import novaapiclient
import novaauth

if __name__ == "__main__":

nova = novaapiclient.NovaAPIClient("http://192.168.100.142:35357/v2.0/tokens")

nova.makeAuth("adminUser", "secretword", "2ad1fc162c254e59bea043560b7f73cb")

print nova.put_server_metadata("48f366bd-e9c9-47b5-a41f-ca9bcac2d945","labeltest","2.0")

还有我的 put_server_metadata 代码:

def put_server_metadata(self, serv_id, label, version):
if self.auth.isAuthed():

c = pycurl.Curl()
printer = cStringIO.StringIO()

url = self.auth.getComputeURL() + "/servers/%s/metadata" % serv_id
json_put = file('json_server_put_metadata.json','r+w')
new_js = str(self.put_server_metadata) % (label, version)

json_put.seek(0)
json_put.write(new_js)
json_put.truncate()
json_put.close()

json_to_send = file('json_server_put_metadata.json','r+w')
siz = os.path.getsize("json_server_put_metadata.json")

tok = str(self.auth.getAuthToken())

final_tok = "X-Auth-Token: %s" % tok
content_len = "Content-length: %d" % siz
cont_type = "Content-Type: application/json"
accept = "Accept: application/json"

c.setopt(pycurl.URL, url)
c.setopt(pycurl.PUT, 1)
c.setopt(pycurl.HTTPHEADER, [final_tok, cont_type, accept, content_len])
c.setopt(pycurl.INFILE, json_to_send)
c.setopt(pycurl.INFILESIZE, siz)
c.setopt(pycurl.WRITEFUNCTION, printer.write)
c.setopt(pycurl.VERBOSE, 1)
c.perform()
c.close()

return printer.getvalue()
else:
return "Not authorized"

最佳答案

从错误消息中可以看出,put_server_metadata 既用作方法又用作字符串。以下提示相同:

def put_server_metadata(self, serv_id, label, version):  # a method
...
new_js = str(self.put_server_metadata) % ... # not consistent with
# put_server_metadata being a method

如果是你,我会在代码中搜索所有出现的 put_server_metadata 并从那里获取它。

关于python - 奇怪的 'str' 对象不可调用 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10350655/

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