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}
有什么好办法吗?
答案 0 :(得分:1)
唯一的方法是将字典转换为字符串并删除空格。如果您的键或值应该有空格,这将导致问题,但是在此示例中适用。
>>> somedict_dict = {}
>>> somedict_dict[u'somekey'] = 0.03
>>> output_str = str(somedict_dict).replace(": ", ":")
>>>
>>> print(output_str)
{'somekey':0.03}