错误AttributeError:'str'对象没有属性'get'的原因是什么?如何修复它?

2024-06-01 01:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在打印以下代码时遇到问题:

pizza_order = {'name': 'Matthew', 'size': 'large', 'crust': 'stuffed', 'toppings': 'sausage, bacon, beef, ham'}

orders = []
for value in pizza_order.values():
    pizza = "Thank you for your order, " + value.get('name') + "\nYou have ordered a " + value.get('size') + ", " + value.get('crust') + " crust pizza with the following toppings:\n" + value.get('toppings')
    orders.append(pizza)
print(orders)

我收到的错误为:

Traceback (most recent call last):
  line 33, in <module>
    pizza = "Thank you for your order, " + value.get('name') + "\nYou have ordered a " + value.get('size') + ", " + value.get('crust') + " crust pizza with the following toppings:\n" + value.get('toppings')
AttributeError: 'str' object has no attribute 'get'

Tags: nameinyouforyoursizegetvalue
3条回答

您做错了,您需要比萨饼订单作为列表,否则没有理由创建order=[]

pizza_order = [{'name': 'Matthew', 'size': 'large', 'crust': 'stuffed', 'toppings': 'sausage, bacon, beef, ham'}]

orders = []
for value in pizza_order:
    pizza = "Thank you for your order, " + value.get('name') + "\nYou have ordered a " + value.get('size') + ", " + value.get('crust') + " crust pizza with the following toppings:\n" + value.get('toppings')
    orders.append(pizza)

print(orders)

输出:

['Thank you for your order, Matthew\nYou have ordered a large, stuffed crust pizza with the following toppings:\nsausage, bacon, beef, ham']

for循环正在遍历pizza\u order字典,而不是orders数组

pizza_order.values()返回dict的值["Matthew", "large", ...]

如果只想显示顺序并添加到orders数组中,则不需要使用循环

pizza_order = {'name': 'Matthew', 'size': 'large', 'crust': 'stuffed', 'toppings': 'sausage, bacon, beef, ham'}

orders = []
pizza = "Thank you for your order, " + pizza_order.get('name') + "\nYou have ordered a " + pizza_order.get('size') + ", " + pizza_order.get('crust') + " crust pizza with the following toppings:\n" + pizza_order.get('toppings')
orders.append(pizza)

print(orders)

values()迭代字典的值-Matthewlarge,等等。因为字典包含单个顺序,所以不需要循环,只需直接运行print

相关问题 更多 >