将列表中的列表更改为字符串 - python

普雷斯顿

我使用列表理解创建了一个列表,我想知道如何将列表中的列表更改为字符串。

这是我的代码:

limit = 1000
searchPage = 0
tagId = 493
table = 'ContactGroupAssign'
selectedFields = ['Contact.Id', 'DateCreated', 'Contact.OwnerID', 'Contact.Groups']
queryDataUnknown = {'GroupId': tagId, 'DateCreated': "~>=~" + str(twoyearsago)}

tagsDic = {'Unknown': ',10738', 
'Cant Afford': ',10712', 
'Doesnt Want To Pay': ',10714', 
'No 3rd Party': ',10716', 
'No Longer Qualifies': ',10718', 
'Scam': ',10720', 
'No Contact': ',10734', 
'Collections - Non Payment': ',7878', 
'Billing Cancellation': ',10748', 
'NBDK': ',8744', 
'Within 5 Days: Cant Afford CTF': ',10744', 
'Within 5 Days: Changed Mind/Persuaded': ',10746'}

allcancelledmembers = []
while True:
        queryResults = infusionsoft.DataService('query', table, limit, searchPage, queryDataUnknown, selectedFields)
        allcancelledmembers += queryResults
        searchPage += 1
        if len(queryResults) < 1000:
            break
lc_allcancelmembers = [[record.get("Contact.Id"), convert_is_datetime(str(record.get("DateCreated"))), record.get("Contact.OwnerID"), record.get("Contact.Groups"), [k for k, v in tagsDic.items() if v in (record.get("Contact.Groups"))]] for record in allcancelledmembers]

这是 allcancelledmembers 的初始查询结果:

{'Contact.OwnerID': 28950, 'Contact.Groups': '128,138,206,208,312,420,493,790,952,1528,1554,3286,3302,3634,4090,6566,6570,6572,6576,6578,6582,6584,6588,6596,6600,6604,6606,6608,6610,6614,6766,6782,6784,6934,6966,6970,6972,6992,7054,7060,7062,7226,7366,7688,7692,7906,8006,8010,8122,8130,8254,8274,8282,8290,8418,8644,8672,8734,8873,9041,9043,9171,9175,9540,9622,9752,10738', 'DateCreated': <DateTime '20190513T17:28:05' at 0x10dbec5c0>, 'Contact.Id': 621894}

这是 lc_allcancelmembers 返回的记录:

[68505, datetime.datetime(2019, 1, 9, 9, 10, 52), 384114, '130,134,136,138,152,206,208,286,290,312,436,493,495,728,760,772,774,788,952,968,1088,1226,1254,2362,2584,2598,2972,2974,3102,3560,4552,4554,5430,6566,6950,7226,8156,8160,8412,8418,8672,8744,9179,9273,10738', ['Unknown', 'NBDK']]

这是我想要的结果:

[68505, datetime.datetime(2019, 1, 9, 9, 10, 52), 384114, '130,134,136,138,152,206,208,286,290,312,436,493,495,728,760,772,774,788,952,968,1088,1226,1254,2362,2584,2598,2972,2974,3102,3560,4552,4554,5430,6566,6950,7226,8156,8160,8412,8418,8672,8744,9179,9273,10738', 'Unknown','NBDK']

新结果的唯一区别是将每条记录的最后一项从 ['Unknown','NBDK'] 更改为 'Unknown','NBDK'。

有没有办法通过改变我的代码中的这一行来做到这一点:

lc_allcancelmembers = [[record.get("Contact.Id"), convert_is_datetime(str(record.get("DateCreated"))), record.get("Contact.OwnerID"), record.get("Contact.Groups"), [k for k, v in tagsDic.items() if v in (record.get("Contact.Groups"))]] for record in allcancelledmembers]

如果没有,实现这一目标的最佳方法是什么?

谢谢!

吉米卡洛斯

由于我不认识您正在使用的模块,因此这有点棘手。仍然有效。

import datetime

def cleanContacts(A):
    return A[:-1] + A[-1]

A = [68505, datetime.datetime(2019, 1, 9, 9, 10, 52), 384114, '130,134,136,138,152,206,208,286,290,312,436,493,495,728,760,772,774,788,952,968,1088,1226,1254,2362,2584,2598,2972,2974,3102,3560,4552,4554,5430,6566,6950,7226,8156,8160,8412,8418,8672,8744,9179,9273,10738', ['Unknown', 'NBDK']]
C = [68505, datetime.datetime(2019, 1, 9, 9, 10, 52), 384114, '130,134,136,138,152,206,208,286,290,312,436,493,495,728,760,772,774,788,952,968,1088,1226,1254,2362,2584,2598,2972,2974,3102,3560,4552,4554,5430,6566,6950,7226,8156,8160,8412,8418,8672,8744,9179,9273,10738', 'Unknown','NBDK']
assert cleanContacts(A) == C

此外,如果我正确地猜测要弹出的元素来自最后一个列表理解,那么这个星号将起作用。

lc_allcancelmembers = [[record.get("Contact.Id"), convert_is_datetime(str(record.get("DateCreated"))), record.get("Contact.OwnerID"), record.get("Contact.Groups"), *[k for k, v in tagsDic.items() if v in (record.get("Contact.Groups"))]] for record in allcancelledmembers]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串格式[a,b,c]更改为python中的可交互列表

Python将UUID对象更改为字符串表示形式列表

Python:如何将字符串格式的Multipolygon更改为列表

Python 将带有字符串的列表的格式更改为在列中浮动

修改python列表中的所有元素,并将类型从字符串更改为整数

Python - 如何将字符串列表更改为数据框名称列表

将字符串转换为python中的列表

将输入(字符串)视为 Python 中的列表

将字符串排序到python列表中

将字符串转换为python中的词典列表

Python将列表中的字符串转换为数字

Python将列表中的部分字符串相互比较

将复杂的字符串转换为python中的列表

将字符串的元素附加到列表中 (python)

在字符串列表中将None更改为Float(Python)

将pandas python中列值中的字符串的整数+字符串更改为大写

使用 Python 将字符串中的子字符串更改为字典中的相应项目

如何将 python pygame 函数从字符串更改为 python 中的函数?

将字符串的子字符串与 Python 中的列表匹配

如何将列表中的python字符串制作成分割的字符串

使用 Python 将字符串变量更改为 JSON

python将字符串对象更改为数字

Python 将字符串更改为变量名

将字符串转换为python中的列表或将xml数据读取为列表

在 Python 中从字符串创建列表

在列表中连接 Python 字符串

从Python列表中合并字符串

从python中的字符串生成的列表

将列表列表中字符串的出现与python中的字典进行比较