考虑到以下内容:
data = response.json()
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
print(field['value'])
的回报:
11111
22222
33333
44444
55555
66666
77777
但是,我想将输出作为列表存储在一个单独的变量中,以便稍后使用,所以我这样做:
data = response.json()
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
var_for_later = field['value']
var_for_later = var_for_later.splitlines()
var_for_later = var_for_later
但是,它只返回数组中的第一个元素:
11111
代替['11111','22222','33333','44444','55555','66666','77777']
为什么field['value']
现在只存储第一个元素时分配给一个变量?
您正在将值分配给变量,而不是将其附加到列表中。为了在列表中存储值,您需要更新代码以在for
循环之前创建一个空列表,并通过使用list.append()
方法将field['value']
附加到列表中。因此,您的代码将变成:
data = response.json()
my_list = [] # creating empty list
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
my_list.append(field['value']) # Appending items to the list
,它将返回您所需格式的my_list
as列表,如:
[11111, 22222, 33333, 44444, 55555, 66666, 77777]
试试这个:
yourdata = []
data = response.json()
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
yourdata.append(field['value'])
print(yourdata)
我猜你对Python很陌生,所以我建议你看一些教程或在互联网上搜索文档。例如w3schools
为什么你的代码不能工作?
看看这行:var_for_later = var_for_later
它什么也没做。此外,您可以在每次迭代中覆盖var_for_later。因此,从技术上讲,它最后应该返回'77777'而不是'11111'。
您确定这是对应于此代码的输出吗?
顺便说一句,你真的有多个相同id的条目吗?
早些时候你一次打印一个字段,但后来你开始在每个循环中替换相同的变量,这就是为什么它只有一个值。var_for_later
只存在于该for循环中。相反,在循环之外创建最终列表,并在每次迭代中附加值。
out = []
data = response.json()
for result in data['results']:
for field in result['custom_fields']:
if field['id'] == some_id_field:
out.append(field['value'])