Я создал список, используя понимание списка, и мне было интересно, как преобразовать список в списке в строку.
Это мой код:
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]
Если нет, то как лучше всего выполнить sh это?
Спасибо!