在Python中,如何在字典中的键的末尾添加分号?

gt0wga4j  于 2023-06-07  发布在  Python
关注(0)|答案(3)|浏览(140)

我想把这个字典写到一个文件中,但是我想在每个键的末尾加上分号。例如:

Cricket = {
    'CricketSport {': {
        'Bat': "White;",
        'Ball': "Red;",
        'Wickets': random.choice(range(1, 3)),
            }
        }

我想要的输出是

CricketSport {
Bat:White;
Ball:Red;
Wickets:2;# I want this semicolon after the number 2
}

尝试使用.append(“;”)但没有工作。任何帮助是值得赞赏的,提前感谢!

gstyhher

gstyhher1#

使用字符串格式:

'Wickets': f'{random.choice(range(1, 3))};',
oxcyiej7

oxcyiej72#

也许你正在序列化一个对象,你可能需要编写自己的方法。

def dump_as_is(obj):
    def walk():
        for k, m in obj.items():
            yield k

            for nk, nv in m.items():
                if not isinstance(nv, str):
                    yield f'  {nk}:{nv};' 
                else:
                    yield f'  {nk}:{nv}'

        yield '}'

    return '\n'.join(walk())
print(dump_as_is(Cricket))

此外,您可能需要重写它,并给出明确的定义

cricket = {
    'CricketSport': {
        'Bat': "White",
        'Ball': "Red",
        'Wickets': random.choice(range(1, 3)),
    }
}

def dump(obj):
    def walk():
        for k, m in obj.items():
            yield k

            for nk, nv in m.items():
                yield f'  {nk}:{nv};'

        yield '}'

    return '\n'.join(walk())

print(dump(cricket))

这将给予

CricketSport
  Bat:White;
  Ball:Red;
  Wickets:2;
}
sulc1iza

sulc1iza3#

你可以使用字符串插值。例如使用打印功能:variable = "blah blah text" print(f"{variable};")
OUTPUT:blah blah test;

相关问题