我犯了个错误
AttributeError:“unicode”对象没有属性“append”
对于以下python代码:
getStats提取系统信息并将其放置在dictionary的几个键中,每个键都有一个值,将dictionary写入json文件,脚本停止。 脚本每小时唤醒一次,读取json文件,获取新的getStats样本,并将这些新值附加到相应的键中,创建列表。你知道吗
以下是剧本的精髓:
newDict = getStats()
.
.
.
oldDict['offset'].append(newDict['offset'])
(Attribute error occurs here)
我有一个变通方法,它遍历键的值列表,创建新列表,将新值附加到新列表,并在oldDict中写入相应的键。 好像有点不太对劲…我在想这里是不是少了什么东西。你知道吗
这是我在脚本第一次迭代时的json文件:
{“maxError”:“275848”,“pollingInterval”:“512”,“timeCorrect”:“57”,“driftTime”:“21.056”,“frequency”:“21.099”,“offset”:“288.840”}
谢谢你的帮助!你知道吗
dict['offset']的值是一个字符串。如果要附加新的偏移量,应该将其列为一个列表。在初始化旧dict时,请尝试以下操作:
如果您想将每个键和值从一个字典复制到一个新字典,我将使用以下方法:
如果只想复制一组特定的键及其值,可以使用以下方法:
这只会添加键和值,如果它是
'offset'
oldDict['offset']必须包含没有属性append的类型。你知道吗
很可能是共享json中的字符串:
问题的复制:
您需要将其表示为一个列表以使用append:
小心传递给append()的内容。如果您给它另一个列表,即newDict[“offset”]将拥有的列表,如果您在getStats()中按列表方式进行操作,它将在oldDict[“offset”]中的列表末尾添加该列表
如果只想将newDict[“offset”]的值添加到in oldDict[“offset”]中,则需要传递值,在这种情况下,可能需要列表理解:
或者简单地在列表中使用+:
相关问题 更多 >
编程相关推荐