如何将字典转换为一串关键字参数?

sha*_*pan 5 python string dictionary keyword-argument

我们可以转换字典来kw**kw,但如果我想kwstr(kw)不是str(dict),因为我想用关键字参数的code_generator一个字符串,

如果我通过

obj.method(name='name', test='test', relation = [('id','=',1)])
Run Code Online (Sandbox Code Playgroud)

我想要一个函数来返回字符串

"name='name', test='test', relation = [('id','=',1)]"
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 9

相同的语法用于接受任意关键字参数.

def somestring(**kwargs):
  return ', '.join('%s=%r' % x for x in kwargs.iteritems())
Run Code Online (Sandbox Code Playgroud)

请注意,dicts是任意排序的,因此结果字符串的顺序可能与传递的参数的顺序不同.

  • 注意`.iteritems()` 是 Python 2 语法;在 Python 3 中它是`.items()`。见 /sf/answers/732099721/ (3认同)
  • Python3 使用 f 字符串进行更新: `", ".join(f'{x[0]}={x[1]!r}' for x in kwargs.items())` (2认同)
  • `", ".join(f"{key}={value}" for key, value in kwargs.items())` 可能更Pythonic。 (2认同)