【问题标题】:AttributeError: 'dict' object has no attribute 'append'AttributeError:“dict”对象没有属性“append”
【发布时间】:2019-03-31 09:14:45
【问题描述】:
Can someone please tell me what basic thing I am missing here.

Type: <class 'list'>
Value : ['09,10,11,12,13,14,15']

for datapoint in value:
    y.append(datetime.fromtimestamp(datapoint).strftime('%I%P').lstrip('0').upper())

I want value of y should be like this-[9PM,10PM,11PM,12PM,1PM,2PM,3PM]

如果我使用上述函数,我不确定为什么它没有转换为我想要的值。有人可以建议我在这里缺少什么以及为什么会出现此错误->“AttributeError:'dict'对象没有属性'append'”

【问题讨论】:

标签: python


【解决方案1】:

你有一个包含一个字符串的 1 元素列表:你的 datapoint 是一个完整的字符串,而不是它的一部分。您需要对拆分后的值进行拆分和迭代:

from datetime import datetime

y = [] # use list to use append, see dict approach below

data = '09,10,11,12,13,14,15'.split(",") #split into ["09","10",...,"15"]

for dp in data: # "09" then "10" then "11" etc.
    y.append(datetime.strptime(dp,"%H").strftime('%I%P').strip("0").upper())

print(y)

输出:

['9AM', '10AM', '11AM', '12PM', '1PM', '2PM', '3PM']

要添加字典,您需要使用update((key,value)-iterable)d[key]=value

d = {}
for time in y:
    d["Time "+time] = time

# or

d.update(  ((t,t) for t in y) ) # doesnt make much sense to have identical key/values

# d[]=... - Output
{'Time 9AM': '9AM', 'Time 12PM': '12PM', 'Time 3PM': '3PM', 
 'Time 11AM': '11AM', 'Time 2PM': '2PM', 'Time 10AM': '10AM', 
 'Time 1PM': '1PM'}

# update - Output 
{'12PM': '12PM', '1PM': '1PM', '11AM': '11AM', '9AM': '9AM', 
 '10AM': '10AM', '3PM': '3PM', '2PM': '2PM'}

【讨论】:

  • 我尝试了第一个但我再次得到属性错误 data = value.split(",") #split into ["09","10",...,"15"] AttributeError: 'list' 对象没有属性 'split'
  • 打印(值)['09,10,11,12,13,14,15,16']
  • @Terry 你想告诉我什么? data = value[0].split(",") 然后其余代码同上...
【解决方案2】:

错误很明显,您尝试在变量y 上使用append(),这里是字典。字典没有append() 函数,因此出现错误。

为了让您的代码正常工作,您可能需要将y 设为list

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 2020-11-07
    • 2019-03-11
    • 2016-02-11
    • 2020-10-16
    • 2018-03-17
    • 2018-09-02
    • 2021-01-30
    相关资源
    最近更新 更多