Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何去掉字典中所有的花括号_Python_Dictionary - Fatal编程技术网

Python 如何去掉字典中所有的花括号

Python 如何去掉字典中所有的花括号,python,dictionary,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] +=

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

 {'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
}}
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)
这段代码首先通过迭代外部dict来构建字符串。它将键附加到字符串(加上“:”,以符合格式要求)。然后它迭代内部dict,并以相同的方式追加键和值。它使用
%r
格式说明符,这意味着正在打印的元素使用其
repr
功能进行转换。这将为字符串提供引号,而无需手动添加它们

不过,你不能指望订单会被修改。所以对于不同的跑步,你会得到稍微不同的订单

输出看起来像

Chin PTE LTD:“胡萝卜蛋糕”:22,“巧克力蛋糕”:12,“啤酒”:89,“可口可乐海鲜”:烤澳大利亚安古:1,“脆鸡翅”:1


如果您使用的是python2而不是python3,请将项目替换为iteritems

首先,为什么要这样做。。您想要的输出是字符串还是所需的数据结构。@AjayPal我想删除花括号,因为如果用于演示的话。为了澄清,我希望的输出是字符串格式的。谢谢,很好的解决方案。谢谢@user3271404很高兴为您提供帮助!请记住,字典不是按顺序排列的,因此如果您希望列表始终按相同顺序排列,则需要使用不同的对象。我不明白您的代码是如何工作的?您是否解释了代码背后的逻辑?谢谢。如果有更多级别的嵌套字典,这将失败。@输入是否有更多级别的嵌套字典?问题和示例数据都提到了这一点。事实上,OPs代码显示了dict是如何构建的以及它的2个深度。@PaulRooney感谢您的友好解释。我现在有了一个更清晰的画面。非常感谢。你的解决方案也很酷。我能问一下它的标准和项目有什么区别吗?谢谢。@python2中的user3271404项立即生成完整的列表,但iteritems提供了一个迭代器。在python3中,items是一个gottit。谢谢你的解释。=)
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))