我的输出格式如下:
(u'Columns', [{u'Type': u'string', u'Name': u'recon_c+c'},
{u'Type': u'string', u'Name': u'data'},
{u'Type': u'string', u'Name': u'nui'},
{u'Type': u'bigint', u'Name': u'typ'}])
我想将其转换为以下格式:
recon_c+c string,
data string,
nui string,
typ bigint
如何使用python做到这一点?因为我正在尝试通用解决方案,所以如果我能得到更多的键:值,那么代码也可以处理。
请让我知道你们是否有解决方案。
答案 0 :(得分:1)
您的逗号要求会使事情稍微复杂一些,但是您可以将print
及其可选的sep
参数使用。
T = (u'Columns', [{u'Type': u'string', u'Name': u'recon_c+c'},
{u'Type': u'string', u'Name': u'data'},
{u'Type': u'string', u'Name': u'nui'},
{u'Type': u'bigint', u'Name': u'typ'}])
print(*(' '.join((d['Name'], d['Type'])) for d in T[1]), sep=',\n')
要注意的重点是您有一个tuple
,并且元组的第二个值是字典列表。这是您需要迭代的。
结果
recon_c+c string,
data string,
nui string,
typ bigint
答案 1 :(得分:1)
您可以使用简单的for循环:
#!/usr/bin/env python
l = (u'Columns', [{u'Type': u'string', u'Name': u'recon_c+c'},
{u'Type': u'string', u'Name': u'data'},
{u'Type': u'string', u'Name': u'nui'},
{u'Type': u'bigint', u'Name': u'typ'}])
print ",\n".join(['{} {}'.format(d['Name'], d['Type']) for d in l[-1]])
输出:
recon_c+c string,
data string,
nui string,
typ bigint
答案 2 :(得分:0)
您可以在一列中使用列表推导来做到这一点:
myTuple = (u'Columns', [{u'Type': u'string', u'Name': u'recon_c+c'},
{u'Type': u'string', u'Name': u'data'},
{u'Type': u'string', u'Name': u'nui'},
{u'Type': u'bigint', u'Name': u'typ'}])
myList = [ print (x["Name"]+" " + x["Type"]) for x in myTuple[1] ]
输出:
recon_c+c string
data string
nui string
typ bigint
当然,您可以根据需要设置打印格式。
答案 3 :(得分:0)
SocketAsyncEventArgs
我们可以将字典视为 1 information = (
2 u'Columns',
3 [
4 {u'Type': u'string', u'Name': u'recon_c+c'},
5 {u'Type': u'string', u'Name': u'data'},
6 {u'Type': u'string', u'Name': u'nui'},
7 {u'Type': u'bigint', u'Name': u'typ'}
8 ]
9 )
10
11
12 [print(i.get('Name'), i.get('Type')) for i in information[1]]
,然后可以循环浏览此列表中的每个字典并使用information[1]
使用循环理解我们可以编写: