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

时间:2010-05-10 12:04:35

标签: python string dictionary keyword-argument

我们可以使用kw将字典转换为**kw,但如果我希望kwstr(kw)而不是str(dict), 因为我想要一个带有code_generator关键字参数的字符串,

如果我通过

obj.method(name='name', test='test', relation = [('id','=',1)])

我想要一个函数来返回像

这样的字符串
"name='name', test='test', relation = [('id','=',1)]"

2 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:0)

上面的答案不能在python 2.7.16上正确运行,应该是

def somestring(**kwargs):
    return ''.join([('%s=%s' % x) for x in kwargs.iteritems()]) 


#A full example:

def RunCommandAndEnsureZero(*args, **kwargs):
    retCode = RunCommand(*args, **kwargs)
    if retCode != 0:
        kwargsString = ''.join([('%s=%s' % x) for x in kwargs.iteritems()])
        raise Exception("error command: \"%s %s\"" % (''.join(args), kwargsString))