Python 如何按键排序词典并将其打印到表中

Python 如何按键排序词典并将其打印到表中,python,python-3.x,dictionary,key,Python,Python 3.x,Dictionary,Key,我在另一本字典里有一本字典,也就是说,我有一本库存字典(比如超市),里面有产品的字典(比如苹果),上面有它们的名称、数量等。我需要按键排序,然后打印成表格 现在我有, stock = load_stock_from_file() print("{0} | {1:<35} | {2:^11} | {3:^12} ".format("Ident", "Product", "Price", "Amount")) print("-" * 6 + "+" + "-"*37+"+"+"-"*13+"

我在另一本字典里有一本字典,也就是说,我有一本库存字典(比如超市),里面有产品的字典(比如苹果),上面有它们的名称、数量等。我需要按键排序,然后打印成表格

现在我有,

stock = load_stock_from_file() 
print("{0} | {1:<35} | {2:^11} | {3:^12} ".format("Ident", "Product", "Price", "Amount"))
print("-" * 6 + "+" + "-"*37+"+"+"-"*13+"+"+"-"*12)

for key in sorted(stock):
print("{name:<35} | {price:^11} | {amount:^12} ".format(**key))
我的钥匙是10000个数字,其余的都是那本字典的一部分


谢谢

该错误表示您的键变量是str。我想您需要格式化值而不是元素。你可以试试:

for key in sorted(stock):
    print("{name:<35} | {price:^11} | {amount:^12} ".format(**stock[key]))
对于已排序的输入(库存):
print(“{name:您正在将键(一个字符串)传递给format方法,在这种情况下,由于双星的存在,该方法需要一个字典。您只需在循环中用
库存[key]
替换

这里还可以使用string方法,这样就不需要用双星来解包字典

for key in sorted(stock):
    print(key, end='   ')
    print("{name:<35} | {price:^11} | {amount:^12} ".format_map(stock[key]))
对于已排序的输入(库存):
打印(键,结束=“”)
打印(“{名称:
for key in sorted(stock):
    print(key, end='   ')
    print("{name:<35} | {price:^11} | {amount:^12} ".format_map(stock[key]))
for ident, dicti in sorted(stock.items(), key=lambda item: item[1]['price']):
    print(ident, end='   ')
    print("{name:<35} | {price:^11} | {amount:^12} ".format_map(dicti))