Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python:将变量从循环中取出_Python 3.x - Fatal编程技术网

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)移出循环