【发布时间】:2016-04-23 18:25:20
【问题描述】:
我为我的 python 练习创建了一些简单的代码。但是当我尝试从我的函数返回值时,我只得到第一个值而不是两者。我究竟做错了什么?
def get_multi_data():
#IM GETTING DATA FROM AN API as response#
item_data = json.loads(response.text)
#Get some data !!TEST!!
item_info = []
for name in item_data:
item_name = item_data['market_hash_name']
item_info.append(item_name)
break
else :
item_name = None
for price in item_data:
item_price = item_data['prices']
break
else :
item_price = None
for lowest in item_price:
lowest_price = item_price['lowest']
item_info.append(lowest_price)
break
else :
lowest_price = None
return item_name, lowest_price
当我试图返回我的值时,我只得到第一个值。 谢谢。
【问题讨论】:
-
你怎么称呼它?您将返回两个值,因此如果您想在单独的变量中获取这两个值,您需要这样做:
a, b = get_multi_data()。否则a = get_multi_data()在分配给a的元组中给你两个。 -
可以粘贴 JSON 数据吗?
-
@idjaw,我认为问题在于 for 循环中有
break语句在“第一个”之后停止。 -
那是错误的人回复...@DraugDev,你为什么有
break声明他们在哪里? -
哦,我明白了,所以如果
item_data为空,您将在 for 循环中运行else:,否则它会使用数据,这将更好地表示为if item_data:和 @987654330 @(删除了breaks)
标签: python arrays python-3.x return-value