TypeError: sequence item 0: expected string, int found
Become part of the top 3% of the developers by applying to Toptal https://topt.al/25cXVn
--
Music by Eric Matyas
https://www.soundimage.org
Track title: Techno Intrigue Looping
--
Chapters
00:00 Question
01:24 Accepted answer (Score 546)
01:42 Answer 2 (Score 84)
02:00 Answer 3 (Score 22)
02:19 Answer 4 (Score 15)
03:25 Thank you
--
Full question
https://stackoverflow.com/questions/1088...
Answer 3 links:
[cval]: https://stackoverflow.com/users/923813/c...
[Priyank Patel]: https://stackoverflow.com/users/887668/p...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python
#avk47
--
Music by Eric Matyas
https://www.soundimage.org
Track title: Techno Intrigue Looping
--
Chapters
00:00 Question
01:24 Accepted answer (Score 546)
01:42 Answer 2 (Score 84)
02:00 Answer 3 (Score 22)
02:19 Answer 4 (Score 15)
03:25 Thank you
--
Full question
https://stackoverflow.com/questions/1088...
Answer 3 links:
[cval]: https://stackoverflow.com/users/923813/c...
[Priyank Patel]: https://stackoverflow.com/users/887668/p...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python
#avk47
ACCEPTED ANSWER
Score 581
string.join connects elements inside list of strings, not ints.
Use this generator expression instead :
values = ','.join(str(v) for v in value_list)
ANSWER 2
Score 98
Although the given list comprehension / generator expression answers are ok, I find this easier to read and understand:
values = ','.join(map(str, value_list))
ANSWER 3
Score 25
Replace
values = ",".join(value_list)
with
values = ','.join([str(i) for i in value_list])
OR
values = ','.join(str(value_list)[1:-1])
ANSWER 4
Score 16
The answers by cval and Priyank Patel work great. However, be aware that some values could be unicode strings and therefore may cause the str to throw a UnicodeEncodeError error. In that case, replace the function str by the function unicode.
For example, assume the string Libiƫ (Dutch for Libya), represented in Python as the unicode string u'Libi\xeb':
print str(u'Libi\xeb')
throws the following error:
Traceback (most recent call last):
File "/Users/tomasz/Python/MA-CIW-Scriptie/RecreateTweets.py", line 21, in <module>
print str(u'Libi\xeb')
UnicodeEncodeError: 'ascii' codec can't encode character u'\xeb' in position 4: ordinal not in range(128)
The following line, however, will not throw an error:
print unicode(u'Libi\xeb') # prints Libiƫ
So, replace:
values = ','.join([str(i) for i in value_list])
by
values = ','.join([unicode(i) for i in value_list])
to be safe.