簡體   English   中英

如何在字典python中訪問列表中的元素?

[英]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'])

代碼中的兩個快速修復應解決它

  1. 加入由逗號分隔的trans['category']返回的列表,使其成為字符串而不是列表的字符串表示。
  2. 引用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM