如何将字典转换为字符串?

时间:2015-07-27 23:34:30

标签: python string dictionary

假设我有一个词典:

{
'a':'vala',
'b':'valb',
'c':'valc'
}

我想将其转换为字符串:

"a='vala' , b='valb' c='valc'"

到达那里的最佳方式是什么?我想做点什么:

mystring = ""
for key in testdict:
  mystring += "{}='{}'".format(key, testdict[key]).join(',')

4 个答案:

答案 0 :(得分:4)

您可以将str.join与生成器表达式一起使用。请注意,字典没有任何订单,因此这些项目将被任意订购:

{!r}

如果您希望值的引号与其类型无关,请将'{}'替换为>>> dct = {'a': 1, 'b': '2'} >>> ','.join('{}={!r}'.format(k, v) for k, v in dct.items()) "a=1,b='2'" >>> ','.join("{}='{}'".format(k, v) for k, v in dct.items()) "a='1',b='2'" 。一个显示差异的例子:

.join

答案 1 :(得分:2)

关闭! testdict ={ 'a':'vala', 'b':'valb' } mystring = [] for key in testdict: mystring.append("{}='{}'".format(key, testdict[key])) print ','.join(mystring) 用于将字符中的项目连接在一起,因此您需要将这些项目附加到列表中,然后通过末尾的逗号将它们连接在一起,如下所示:

mysql -uforge -p
Enter password: thepassword

答案 2 :(得分:0)

好吧,如果你想得到一个排序结果:

d={'a':'vala', 'b':'valb', 'c':'valc'}
st = ", ".join("{}='{}'".format(k, v) for k, v in sorted(d.items()))
print(st)

结果

a='vala', b='valb', c='valc'

答案 3 :(得分:0)

" , ".join( "%s='%s'"%(key,val) for key,val in mydict.items() )