繁体   English   中英

解析dict到字符串

[英]Parse dict of dicts to string

我有一本具有以下结构的字典:

{1: {'message': u'test', 'user': u'user1'}, 2: {'message': u'test2', 'user': u'user2'}}

我想以这种形式创建一个包含内部字典中的值的字符串:

string = "<span>test1</span><span>user1</span><br />
          <span>test2</span>..."

我已经尝试了dict.keys()dict.values()(k,v) for k, v in dict但我无法使其正常工作。 什么是正确的方法?

>>> d={1: {'message': u'test', 'user': u'user1'}, 2: {'message': u'test2', 'user': u'user2'}}

>>> ''.join('<span>%(message)s</span><span>%(user)s</span><br/>' % v for k,v in sorted(d.items()))
u'<span>test</span><span>user1</span><br/><span>test2</span><span>user2</span><br/>'

这样的事情怎么样:

dod = {1: {'message': u'test', 'user': u'user1'}, 2: {'message': u'test2', 'user': u'user2'}}
string = ""
for v in dod.values():
    string = string + "<span>"+v['message'] + "</span><span>" + v['user'] + "</span><br />\n"

或者,以更好的python样式

string = '\n'.join( ("<span>"+v['message'] + "</span><span>" + v['user'] + "</span><br />" for v in dod.values()) )

如果您需要对用户进行排序,则可以

ksorted = sort(dod.keys())
for k in ksorted:
    v = dod[k]
    string = string + "<span>"+v['message'] + "</span><span>" + v['user'] + "</span><br />\n"
data = {1: {'message': u'test', 'user': u'user1'}, 2: {'message': u'test2', 'user': u'user2'}}
strg = "".join(["<span>%s</span><span>%s</span><br />" % (item['message'], item['user']) for item in x.values()])
print strg

像这样?

>>> d={1: {'message': u'test', 'user': u'user1'}, 2: {'message': u'test2', 'user': u'user2'}}
>>> l=[]
>>> for k,v in d.iteritems():
...     l.append('%s%s%s' % ('<span>', '</span><span>'.join(v.values()),'</span>'))
... 
>>> print '<br/>\n'.join(l)
<span>test</span><span>user1</span><br/>
<span>test2</span><span>user2</span>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM