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}