如何将含单元素集合的Python列表转换为指定格式字符串
解决方法
问题根源
你的代码核心问题有两个:
- 向
fields列表中添加的是单元素集合({fieldDict.get('name')}),而非字符串,导致后续转字符串时出现{}和'符号。 str.translate()方法返回新字符串,但你没有将结果重新赋值给变量,原字符串不会被修改。
修改后的完整代码
sf = Salesforce(instance_url='insideigt--tony.sandbox.my.salesforce.com/', username='igtdataimport@igt.com.tony', password='TXRZ51rRe', security_token='2IagJSrI5H3zxeVjgqy1xAN7d', domain='test') def getValidFeilds(sObject): fields = [] print(sObject) schema = getattr(sf, sObject).describe() for fieldDict in schema.get('fields', []): fieldType = fieldDict.get('type') if fieldType not in ['address', 'location'] and not fieldDict.get('compoundFieldName'): # 直接添加字符串,而非集合 fields.append(fieldDict.get('name')) # 直接用', '拼接字符串列表,一步得到目标格式 my_string = ', '.join(fields) print(my_string) # 如果需要返回字符串而非列表,把下面的return改成return my_string return fields sObject = 'Lead' fields = getValidFeilds(sObject)
关键改动说明
- 替换集合为字符串:将
fields.append({fieldDict.get('name')})改为fields.append(fieldDict.get('name')),让fields成为纯字符串列表,从根源避免多余符号。 - 简化字符串拼接:直接使用
,.join(fields),就能生成字段1, 字段2, ...格式的目标字符串,无需额外处理字符。 - 可选调整返回值:如果你的需求是返回格式化后的字符串,而非字段列表,将
return fields改为return my_string即可。
内容的提问来源于stack exchange,提问作者joebob
相关产品推荐
相关产品推荐

