我想将几个字典合并到一个--link mongodb
中。为了能够做到这一点,所有字典都需要具有1的维度。如何将以下字典的维度减少到1但是它仍然是字典?如果字典项有多个条目,则应该简单地加入。因此pd.DataFrame
应该成为myFunds
'2.0 0.0'
更准确地说我的问题是:我想在h = {
'gameStage': 'PreFlop',
'losses': 0,
'myFunds': [2.0, '0.0'],
'myLastBet': 0,
'peviousRoundCards': ['2S', 'QS'],
'previousCards': ['2S', 'QS'],
'previousPot': 0.03,
'wins': 0
}
中保存对象的所有属性。为此,我DataFrame
给了我一个字典,但并非所有条目都有相同的维度,所以我不能vars(Object)
因为我收到错误。这就是我需要先将DataFrame(vars(Object))
转换为一维字典的原因。但它需要保持字典,否则我无法将其转换为vars(Object)
。
答案 0 :(得分:2)
您可以遍历字典中的项目,然后使用str.join()
将它们展平。
我们基本上告诉它迭代字典值中的每个键/值对,将其转换为字符串(因为您不能连接int
和string
),并且然后把它放回sictionary
函数func
是from here,它的作用是确保我们总是有一个可迭代的项目
from collections import Iterable
def func(x):
#use str instead of basestring if Python3
if isinstance(x, Iterable) and not isinstance(x, basestring):
return x
return [x]
for key, val in h.items():
h[key] = " ".join([str(ele) for ele in func(val)])
h
的输出变为:
{
'gameStage': 'PreFlop',
'losses': '0',
'myFunds': '2.0 0.0',
'myLastBet': '0',
'peviousRoundCards': '2S QS',
'previousCards': '2S QS',
'previousPot': '0.03',
'wins': '0'
}