首页 > 解决方案 > 将字典值转换为具有特定顺序的字符串对象

问题描述

我正在寻找一个函数,它将带有地址值的字典转换为具有特定顺序的字符串值。我还需要考虑缺失值(某些地址不会有第二或第三地址行。我希望我的输出如下所示,以便我可以将文本块(以新行分隔)复制到数据库字段中。

name
contact
addr1
addr2 (if not empty)
addr3 (if not empty)
city, state zip
phone

我有以下内容来创建字典,但我坚持创建忽略空值并将所有内容按正确顺序放置的字符串对象。

def setShippingAddr(name, contact, addr1, addr2, addr3, city, state, zipCode, phone):
    addDict = {'name': name, 'contact': contact, 'addr1': addr1,
               'city': city, 'state': state, 'zip': zipCode, 'phone': phone}
    if addr2 is True:    # append dict if addr2/addr 3 are True
        addDict['addr2'] = addr2
    if addr3 is True:
        addDict['addr3'] = addr3

    shAddr =     # This is where i need to create the string object
    return shAddr

标签: pythonpython-3.xdictionary

解决方案


看起来(假设您使用的是 python3),一个 f 字符串可以在这里工作。

shAddr = f"{addDict['name']} {addDict['contract'] etc..."

您可以在 {} 中添加逻辑,例如

{addDict['addr2'] if addDict['addr2'] else ""}

应该可以工作,具体取决于您要查找的特定输出是什么。


推荐阅读