Python将语句的输出传递给另一个语句进行求值

Python将语句的输出传递给另一个语句进行求值,python,numpy,output,Python,Numpy,Output,尝试获取代码的输出并将其传递给另一个语句 t = ", ".join(DTYPE) output = ('data', list), ('freq', str) 要使用“输出”并传递到以下内容: DF_TYPE = numpy.dtype([t)]) DF = numpy.empty(0, dtype=DF_TYPE) 即评估 DF_TYPE = numpy.dtype([('data', list), ('freq', str)]) DF = numpy.empty(0, dtype=DF

尝试获取代码的输出并将其传递给另一个语句

t = ", ".join(DTYPE)
output = ('data', list), ('freq', str)
要使用“输出”并传递到以下内容:

DF_TYPE = numpy.dtype([t)])
DF = numpy.empty(0, dtype=DF_TYPE)
即评估

DF_TYPE = numpy.dtype([('data', list), ('freq', str)])
DF = numpy.empty(0, dtype=DF_TYPE)
收到错误:

Exception has occurred: TypeError
data type not understood
样本数据:

JSON_DATA = {
  "data": [
    {
      "Members": 29,
      "period": "2020-06-30",
      "TCOC": 5880070,
    },
    {
      "Members": 21,
      "period": "2020-03-31",
      "TCOC": 5689074,
    }
  ],
  "freq": "quarterly"
}

我尝试过使用exec()和eval()但没有效果。

显然,我需要50名代表发表评论。但是你能提供额外的信息比如玩具数据或者任何错误信息吗?谢谢

另外,我注意到您将numpy称为
numpy
np
。系统将仅识别您的导入声明中所述的内容:

import numpy
被称为
numpy。无论什么

import numpy as np
被称为
np。无论是什么

,只要稍加修改,这些结构化数组创建工作:

In [244]: dt = np.dtype([('data',object), ('freq', 'U10')])                                            
In [245]: x = np.empty(3, dtype=dt)                                                                    
In [246]: x                                                                                            
Out[246]: 
array([(None, ''), (None, ''), (None, '')],
      dtype=[('data', 'O'), ('freq', '<U10')])
“数据”字段的一个元素实际上是一个字典:

In [251]: JSON_DATA['data']                                                                            
Out[251]: 
[{'Members': 29, 'period': '2020-06-30', 'TCOC': 5880070},
 {'Members': 21, 'period': '2020-03-31', 'TCOC': 5689074}]

In [254]: x = np.empty(2, dt)                                                                          
In [255]: x['data'] = JSON_DATA['data']                                                                
In [256]: x['freq'] = JSON_DATA['freq']                                                                

In [257]: x                                                                                            
Out[257]: 
array([({'Members': 29, 'period': '2020-06-30', 'TCOC': 5880070}, 'quarterly'),
       ({'Members': 21, 'period': '2020-03-31', 'TCOC': 5689074}, 'quarterly')],
      dtype=[('data', 'O'), ('freq', '<U10')])
In [258]: x['data']                                                                                    
Out[258]: 
array([{'Members': 29, 'period': '2020-06-30', 'TCOC': 5880070},
       {'Members': 21, 'period': '2020-03-31', 'TCOC': 5689074}],
      dtype=object)
In [259]: x['data'][0]                                                                                 
Out[259]: {'Members': 29, 'period': '2020-06-30', 'TCOC': 5880070}

谢谢你的回答。我正在尝试这样做,我不必手动输入'data'或'freq'的值。这些值是join语句的输出。我想将它们传递到另一行代码中并运行它
In [259]: x['data'][0]                                                                                 
Out[259]: {'Members': 29, 'period': '2020-06-30', 'TCOC': 5880070}