[英]Access elements inside a nested embedded within a list inside a dictionary individually
[英]How can I access elements inside a list within a dictionary python?
我有一个函数返回一个json格式的数据集。 这是一个示例:
[{u'category': [u'Transfer', u'Withdrawal', u'ATM'], u'category_id': u'21012002', u'_account': u'XARE85EJqKsjxLp6XR8ocg8VakrkXpTXmRdOo', u'name': u'ATM Withdrawal', u'amount': 200, u'meta': {u'location': {u'city': u'San Francisco', u'state': u'CA'}}, u'date': u'2014-07-21', u'score': {u'location': {u'city': 1, u'state': 1}, u'name': 1}, u'_id': u'0AZ0De04KqsreDgVwM1RSRYjyd8yXxSDQ8Zxn', u'type': {u'primary': u'special'}, u'pending': False}]
for trans in foodie_data:
print 'Name={},Amount={},Date={}, Categories ={}\n'.format(trans['name'],trans['amount'],trans['date'],trans['category'])
这个脚本打印:
Name=ATM Withdrawal,Amount=200,Date=2014-07-21,Categories=[u'Transfer', u'Withdrawal', u'ATM']
我希望它将Categories作为字符串而不是列表返回:
Name=ATM Withdrawal,Amount=200,Date=2014-07-21,Categories='Transfer, Withdrawal,ATM']
这样做最有效的方法是什么?
您可以加入类别元素:
>>> categories = [u'Transfer', u'Withdrawal', u'ATM']
>>> ",".join(categories)
u'Transfer,Withdrawal,ATM'
并在打印输出时使用它:
",".join(trans['category'])
代码中的两个快速修复应解决它
trans['category']
返回的列表,使其成为字符串而不是列表的字符串表示。 引用category
的格式说明符,即Categories =\\'{}\\'
for trans in foodie_data: print 'Name={},Amount={},Date={}, Categories =\\'{}\\'\\n'.format( trans['name'], trans['amount'], trans['date'], ', '.join(trans['category']))
您也可以使用str.format
直接访问dict以访问其余值:
for trans in foodie_data:
print "Name={name},Amount={amount},Date={date}," \
"Categories='{}'\n".format(",".join(trans["category"]),**trans)
Name=ATM Withdrawal,Amount=200,Date=2014-07-21,Categories='Transfer,Withdrawal,ATM'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.