Последовательность [1, 2]
(если вы правильно представили данные) представляет собой список целых чисел.
Если вы выполняете строковые функции в списке целых, вы получите ошибку типа:
>>> import re
>>> li=[1, 2]
>>> re.sub(r'\[', '', li)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/Cellar/python@3.8/3.8.2/Frameworks/Python.framework/Versions/3.8/lib/python3.8/re.py", line 208, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
Вместо этого вам нужно преобразовать элементы в строки:
>>> list(map(str, li))
['1', '2']
Затем используйте .join
, чтобы превратить список строк в одну строку:
>>> {k:', '.join(map(str, li)) for k,li in my_dict.items()}
{'name1': '1, 2', 'name2': '2, 3', 'name3': '3, 0'}