如何将unicode关键字传递给**kwargs

Jul*_*ier 6 python unicode kwargs

我以下工作是例外.

def foo(**kwargs):
    print kwargs
foo(**{'a':'b'})
foo(**{u'a':'b'})
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):TypeError中的文件"",第1行:m()关键字必须是字符串

我做错了什么或者我应该修理它吗?

Jos*_*Lee 15

升级到Python 2.6.5或更高版本.

  • 是.这是固定的2.6.更多信息:http://bugs.python.org/issue2646和http://bugs.python.org/issue4978. (5认同)

小智 5

升级对我来说不是一个选择所以我会根据需要在这个问题上调用它 -

def flatten_unicode_keys(d):
    for k in d:
        if isinstance(k, unicode):
            v = d[k]
            del d[k]
            d[str(k)] = v
Run Code Online (Sandbox Code Playgroud)