我有一个字符串和一个对象列表:
gpl = "%(id)s : %(atr)s" objects = [{'id':1, 'content':[{'atr':'big', 'no':2}]}, {'id':2, 'content': [{'atr':'small', 'no':3}]}] for obj in objects: for con in obj['content']: print gpl %(obj,con)
我得到:
TypeError: format requires a mapping
我将如何打印?我正在尝试打印:
1 : big 2 : small
谢谢
由于格式字符串使用命名参数:
gpl = "%(id)s : %(atr)s"
您需要在字典中提供键(名称)作为自变量,以引用格式字符串中的命名格式键:
print gpl % {'id': obj['id'], 'atr': con['atr']}
因此您的代码将是:
for obj in objects: for con in obj['content']: print gpl% {'id': obj['id'], 'atr': con['atr']}