我正在尝试使用json将代码存储在txt文件中。每次有新消息进入时,它都会将新消息添加到数组中。
结构将是
{
"Messages": {
"Test Contact 2": {
"0": "\"Message 1"
},
"Test Contact 1": {
"0": "\"Message 1\"",
"1": "\"Message 2\""
}
}
}
这是我目前的代码
class PluginOne(IPlugin):
def process(self):
try:
print("Database")
data_store('Test contact', 'Text Message')
pass
except Exception as exc:
print("Error in database: " + exc.args)
def data_store(key_id, key_info):
try:
with open('Plugins/Database/messages.txt', 'r+') as f:
data = json.load(f)
data[key_id] = key_info
f.seek(0)
json.dump(data, f)
f.truncate()
pass
except Exception as exc:
print("Error in data store: " + exc.args)
当我尝试运行代码时,出现以下错误
Can't convert 'tuple' object to str implicitly
我在网上看了,我还在努力,我确信这是一个简单的答案,但由于我对Python很新,我无法理解。
先谢谢
答案 0 :(得分:1)
在您的异常处理程序中,您要将exc.args
添加到字符串中。 args属性is a tuple,无法隐式转换为字符串。你可以......
# print it seperately
print("Error in data store")
print(exc.args)
# or alternatively
print("Error in data store: " + str(exc.args))
# or alternatively
print("Error in data store: " + str(exc))
但是,这是异常处理程序中的问题,问题的根本原因是其他问题,而您当前的异常处理程序在处理它时并不是很好:
最好只有catch
您知道可以从中恢复的特定例外。