从键值对的浮点值中剥离空格

时间:2019-05-07 00:44:33

标签: python dictionary

Contex:在logstash中,我遇到了这样的错误:

{"type"=>"illegal_argument_exception", "reason"=>"mapper [somekey] cannot be changed from type [long] to [float]"}

这实际上是一个错误,但我无法移至其他logstash版本,并且我尝试过模板等。。。我发现了问题的根源。像这样输入字典后,它将失败:

{u'somekey': 0.03}

如果我手动进入并将输出字典修改为

{u'somekey':0.03}

它完美地工作。

我的问题是,我不想遍历dict的输出来进行我想在将其写入dict之前在代码中进行修复的修复程序。但是我似乎无法消除空间。这是我为了测试而在python中尝试做的事情:

somedict_dict[u'somekey'] = 0.03
print(somedict_dict)
>>>{u'somekey': 0.03}

也尝试过:

somedict_dict[u'somekey'] =0.03
print(somedict_dict)

但最终得到相同的结果:

>>>{u'somekey': 0.03}

有什么好办法吗?

1 个答案:

答案 0 :(得分:1)

唯一的方法是将字典转换为字符串并删除空格。如果您的键或值应该有空格,这将导致问题,但是在此示例中适用。

>>> somedict_dict = {}
>>> somedict_dict[u'somekey'] = 0.03
>>> output_str = str(somedict_dict).replace(": ", ":")
>>>
>>> print(output_str)
{'somekey':0.03}