Python 从字典列表到数组的np数组,反之亦然

Python 从字典列表到数组的np数组,反之亦然,python,list,numpy,dictionary,splunk,Python,List,Numpy,Dictionary,Splunk,我试图找到将字典列表转换为数组的numpy数组(用NULL填充缺少的值)的最佳方法。我还需要相反的方法:将数组的numpy数组转换为字典列表(给定键的标题) 问题:Python字典没有排序。当处理大量行时,理解列表不是最佳选择 示例: listOfDicts = [{'key1': 10, 'key2': 15, 'key3': 19}, {'key1': 20, 'key2': 25, 'key3': 29}, {'key1': 30

我试图找到将字典列表转换为数组的numpy数组(用NULL填充缺少的值)的最佳方法。我还需要相反的方法:将数组的numpy数组转换为字典列表(给定键的标题)

问题:Python字典没有排序。当处理大量行时,理解列表不是最佳选择

示例:

listOfDicts = [{'key1': 10, 'key2': 15, 'key3': 19},
               {'key1': 20, 'key2': 25, 'key3': 29},
               {'key1': 30, 'key2': 35, 'key3': 39},
               {'key1': 40, 'key2': 45, 'key3': 49}]
[[10 15 19]
 [20 25 29]
 [30 35 39]
 [40 45 49]]
预期输出:

listOfDicts = [{'key1': 10, 'key2': 15, 'key3': 19},
               {'key1': 20, 'key2': 25, 'key3': 29},
               {'key1': 30, 'key2': 35, 'key3': 39},
               {'key1': 40, 'key2': 45, 'key3': 49}]
[[10 15 19]
 [20 25 29]
 [30 35 39]
 [40 45 49]]

我为什么需要这个:我需要这个,因为我正在将Python脚本集成到Splunk搜索中。Splunk的输入是一个字典列表,由
Splunk.Intersplunk.getOrganizedResults()
返回。要显示输出,我们需要调用
splunk.Intersplunk.outputResults(results)
其中
results
也是一个字典列表

您可以使用以下工具轻松完成此操作:

要将NumPy数组转换为字典,可以使用:

df2 = pd.DataFrame(vals, columns=df.columns)
df2.to_dict(orient='records')

[{'key1': 10.0, 'key2': nan, 'key3': 19.0},
 {'key1': 20.0, 'key2': 25.0, 'key3': 29.0},
 {'key1': 30.0, 'key2': 35.0, 'key3': 39.0},
 {'key1': 40.0, 'key2': 45.0, 'key3': 49.0}]

我不知道熊猫能做到。谢谢那么相反的方式呢(数组数组+字典列表的标题)?@belas:添加了相反的方式,也添加了熊猫。Pandas可以从许多不同的对象构造数据帧,一旦有了df,就可以直接转换为dict。