开发者社区> 问答> 正文

将字典值转换为具有特定顺序的字符串对象

我希望创建一个函数,将字典与地址值转换成一个字符串值与特定的顺序。我还需要解释丢失的值(一些地址不会有第二个或第三个地址行。我希望输出如下所示,这样我就可以将文本块(用新行分隔)复制到数据库字段中。

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

我有以下内容来创建字典,但是我必须创建string对象,它忽略空值并将所有内容按正确的顺序排列。

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

问题来源StackOverflow 地址:/questions/59379074/converting-dictionary-values-into-a-string-object-with-a-specific-order

展开
收起
kun坤 2019-12-30 09:52:33 461 0
1 条回答
写回答
取消 提交回答
  • 我将重写的函数只返回字符串,字典是没有必要的:

    def setShippingAddr(name, contact, addr1, city, state, zipCode, phone, addr2=None, addr3=None):
        shAddr = f'{name}\n{contact}\n{addr1}'
        shAddr = f'{shAddr}\n{addr2}' if addr2 else shAddr
        shAddr = f'{shAddr}\n{addr3}' if addr3 else shAddr
        shAddr = f'{shAddr}\n{city}, {state} {zipCode}\n{phone}'
        return shAddr
    
    2019-12-30 09:52:40
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载