2017-08-31 18 views
0

我有一個Python2應用程序,它通過結構化日誌庫進行日誌記錄,並在下游使用鍵/值語法捕獲日誌。但是,當涉及unicode字符串時,提取不起作用 - u正被預置爲unicode字符串,從而破壞了解析器。Python結構 - 從Unicode字符串隱藏你'

是否可以配置KeyValueRenderer來排除u'?

import structlog 
structlog.configure(processors=[structlog.processors.KeyValueRenderer()]) 
l = structlog.get_logger() 
l.error('I am ASCII') 
l.error(u'I am Unicode') 

結果:

event='I am ASCII' 
event=u'I am Unicode' 

期望:

event='I am ASCII' 
event='I am Unicode' 

我知道有問題,改變Python對Unicode字符串全球印刷行爲 - 但我只是希望去改變用structlog的方法來打印它們。

+1

你想如何顯示帶有非ASCII字符的字符串? –

+0

[在python字符串中抑制u'prefix表示unicode'](https://stackoverflow.com/questions/761361/suppress-the-uprefix-indicating-unicode-in-python-strings) – Mangohero1

+1

看起來很可能這樣做只會以不同的方式破壞解析器,因爲它會重新構造錯誤的字符串。您可能需要考慮改進解析器。 – user2357112

回答