如何删除词典字典中的所有花括号

时间:2016-10-18 00:54:53

标签: python dictionary

我希望从当前输出中删除所有花括号。我目前的输出如下所示:

 {'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的新手,请问我是否希望删除字典词典中的所有花括号。我想要的输出是否可以实现?如果是这样,我该怎么做呢?任何建议/想法将不胜感激。谢谢。

4 个答案:

答案 0 :(得分:1)

您可以先将字典转换为字符串,然后用空字符串替换所有括号:

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

答案 1 :(得分:0)

像这样构建字符串

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':' Carrot Cake':22,' Chocolate Cake':12,' Beer':89,& #39; COQ SEAFOOD''加油澳大利亚ANGU':1,'脆皮鸡翅':1

答案 2 :(得分:0)

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

替换项目

答案 3 :(得分:0)

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))