python 如何在字典的末尾加分号?

kqlmhetl  于 2023-02-28  发布在  Python
关注(0)|答案(3)|浏览(134)

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

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(“;)但是没有用。任何帮助都是值得赞赏的,提前感谢!

yuvru6vn

yuvru6vn1#

使用字符串格式:

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

cygmwpex2#

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

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;
}
mspsb9vt

mspsb9vt3#

你可以使用字符串插值。例如使用打印函数:variable = "blah blah text" print(f"{variable};")
输出:等等测试;

相关问题