Python 3.x Python:将变量从循环中取出
我有以下代码:Python 3.x Python:将变量从循环中取出,python-3.x,Python 3.x,我有以下代码: for response_i in response['response']: var_1=None if response_i['objkey'] == 'explorecube_data': var_1=response_i['objcontent'][0]['title'] if response_i['objkey'] == 'explorecube_data' and response_i['objcontent'][0]['title'] =
for response_i in response['response']:
var_1=None
if response_i['objkey'] == 'explorecube_data':
var_1=response_i['objcontent'][0]['title']
if response_i['objkey'] == 'explorecube_data' and response_i['objcontent'][0]['title'] == var_1:
print(var_1)
dim_1=None
if response_i['objkey'] == 'explorecube_dimvalues':
dim_1=response_i['objcontent'][0]['title']
if response_i['objkey'] == 'explorecube_dimvalues' and response_i['objcontent'][0]['title'] == dim_1:
print(dim_1)
ab=[var_1, dim_1]
print(ab)
我更新了问题。
输出结果如下:
['tos', None]
[None, None]
[None, 'lat']
[None, None]
我希望得到以下输出:
['tos', 'lat']
我很欣赏任何解决此问题的建议尝试类似的方法,将数据转换为pandas dataframe并删除None值
import pandas as pd
data = []
data.append([var_1, dim_1])
df = pd.DataFrame(data, columns=['var_1', 'dim_1'])
df = df.dropna(how = 'all')
使用生成器生成所需的结果,然后打印
def PrintGen():
for response_i in response['response']:
if response_i['objkey'] == 'explorecube_data' or response_i['objkey'] == 'explorecube_dimvalues':
yield response_i['objcontent'][0]['title']
ab =PrintGen()
listab =list(ab)
print(listab)
生成器用于生成满足需求的对象,它们适合您。您可以简单地将值附加到
ab
,当值不是None
时。然后您需要在循环外部实例化并打印ab
ab = []
for response_i in response['response']:
var_1=None
if response_i['objkey'] == 'explorecube_data':
var_1=response_i['objcontent'][0]['title']
if response_i['objkey'] == 'explorecube_data' and response_i['objcontent'][0]['title'] == var_1:
print(var_1)
ab.append(var1)
dim_1=None
if response_i['objkey'] == 'explorecube_dimvalues':
dim_1=response_i['objcontent'][0]['title']
if response_i['objkey'] == 'explorecube_dimvalues' and response_i['objcontent'][0]['title'] == dim_1:
print(dim_1)
ab.append(dim1)
print(ab)
response['response']
包含什么?使用复制和粘贴输入代码以确保缩进与您编写的缩进相同。您的原件。问题已更新。请删除var_1=None
和dim_1=None
,然后将print(ab)
移出循环。我将ab=[var_1,dim_1],print(ab)移出循环