簡體   English   中英

如何刪除詞典字典中的所有花括號

[英]How to remove the all the curly bracket in dictionary of dictionaries

我希望從當前輸出中刪除所有花括號。 我目前的輸出如下圖所示:

 {'Chin PTE LTD': {'Carrot Cake': 22, 'Chocolate Cake': 12, 'Beer': 89}, 'COQ 
SEAFOOD': {'GRILLED AUSTRALIA ANGU': 1, 'CRISPY CHICKEN WINGS': 1
}}

我目前的代碼如下所示:

for merchant, product, quantity in big_list:
    d[merchant][product] += quantity

print ({ k:dict(v) for k,v in d.items() })

我想要的輸出:

'Chin PTE LTD': 'Carrot Cake': 22, 'Chocolate Cake': 12, 'Beer': 89, 'COQ 
    SEAFOOD': 'GRILLED AUSTRALIA ANGU': 1, 'CRISPY CHICKEN WINGS': 1

因為我還是python的新手,請問我是否希望刪除字典詞典中的所有花括號。 我想要的輸出是否可以實現? 如果是這樣,我該怎么做呢? 任何建議/想法將不勝感激。 謝謝。

您可以通過首先將字典轉換為字符串,然后用空字符串替換所有括號來完成此操作:

d = {'Chin PTE LTD': {'Carrot Cake': 22, 'Chocolate Cake': 12, 'Beer': 89}, 'COQSEAFOOD': {'GRILLED AUSTRALIA ANGU': 1, 'CRISPY CHICKEN WINGS': 1}}

print(str(d).replace("{","").replace("}", ""))

這將打印您正在尋找的東西:

'Chin PTE LTD': 'Carrot Cake': 22, 'Chocolate Cake': 12, 'Beer': 89, 'COQSEAFOOD': 'GRILLED AUSTRALIA ANGU': 1, 'CRISPY CHICKEN WINGS': 1

像這樣構建字符串

d = {'Chin PTE LTD': {'Carrot Cake': 22, 'Chocolate Cake': 12, 'Beer': 89}, 'COQ SEAFOOD': {'GRILLED AUSTRALIA ANGU': 1, 'CRISPY CHICKEN WINGS': 1}}

st = ', '.join('%r: %s' % (k, ', '.join('%r: %r' % (sk, sv) for sk, sv in v.items())) for k, v in d.items())
print(st)

此代碼通過首先迭代外部字典來構建字符串。 它將鍵附加到字符串(加上':'以符合您的格式要求)。 然后它迭代內部字典並以相同的方式附加鍵和值。 它使用%r格式說明符,這意味着正在打印的元素使用其repr函數進行轉換。 這為字符串提供了引號,而無需手動添加它們。

你不能指望被修復的訂單。 因此,對於不同的運行,您將獲得略微不同的訂單。

輸出看起來像

'Chin PTE LTD':'胡蘿卜蛋糕':22,'巧克力蛋糕':12,'啤酒':89,'COQ SEAFOOD':'烤澳大利亞安古':1,'脆皮雞翅':1

d = {'Chin PTE LTD': {'Carrot Cake': 22, 'Chocolate Cake': 12, 'Beer': 89}, 'COQ SEAFOOD': {'GRILLED AUSTRALIA ANGU': 1, 'CRISPY CHICKEN WINGS': 1}}

', '.join(['{}: {}'.format(merchant, ', '.join(['{}: {}'.format(product, quantity) for product, quantity in products.items()])) for merchant, products in d.items()])

如果你使用python2而不是python3,用iteritems替換項目

import re
result={'Chin PTE LTD': {'Carrot Cake': 22, 'Chocolate Cake': 12, 'Beer': 89}, 'COQ SEAFOOD': {'GRILLED AUSTRALIA ANGU': 1, 'CRISPY CHICKEN WINGS': 1}}

expected_output=re.sub("}|{","",str(result))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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