使用Python分割字符串方法的困难

使用Python分割字符串方法的困难,python,Python,我讨厌问这样一个基本的问题,但我似乎无法让split方法在python中工作 我有一本字典,当我打印它时,它看起来像: data_dict = <QueryDict: {u'ids': [u'1012,738'], u'ct': [u'9']}> 看起来列表“ID”实际上只是一个由逗号分隔的ID字符串,因此我尝试: id_string = data_dict['ids'] ids = id_string.split(',') for id in ids: print(id)

我讨厌问这样一个基本的问题,但我似乎无法让split方法在python中工作

我有一本字典,当我打印它时,它看起来像:

data_dict = <QueryDict: {u'ids': [u'1012,738'], u'ct': [u'9']}>
看起来列表“ID”实际上只是一个由逗号分隔的ID字符串,因此我尝试:

id_string = data_dict['ids']
ids = id_string.split(',')
for id in ids:
    print(id)
id_string = data_dict['ids']
id_string = str(id_string)
ids = id_string.split(',')
for id in ids:
    print(id)
没有指纹。然后我想,也许u’意味着它不是一个字符串,我需要先把它转换成一个字符串,然后才能进行拆分,所以我试着:

id_string = data_dict['ids']
ids = id_string.split(',')
for id in ids:
    print(id)
id_string = data_dict['ids']
id_string = str(id_string)
ids = id_string.split(',')
for id in ids:
    print(id)

没有指纹。不确定我做错了什么。

[u'1012738']
是一个列表,因此必须使用
id\u string=data\u dict['id'][0]
从该列表中获取第一个元素

要将该字符串的项转换为整数列表,请使用
map
list comprehension

#map
map(int, data_dict['ids'][0].split(','))

#LC
[int(x) for x in data_dict['ids'][0].split(',')]
演示:


data\u dict['id']
看起来它实际上是一个包含字符串的列表。因此,请尝试
id\u string=data\u dict['id'][0]

u'foo'
是一个Unicode字符串。它应该仍然具有所有正常的字符串方法

此外,如果您正在使用Django并使用
python manage.py runserver
运行代码(并且没有在生产环境中运行!),则可以注入
import pdb;pdb.set_trace()
到您的代码中。然后,当您加载页面时,服务器输出将包含一个pdb提示符,您可以使用它进行实验,就像在pythonshell中一样

如果您确实以这种方式开始使用PDB,请注意:PDB有一些单字母命令和其他优先于Python代码的东西。您可以使用
以确保PDB像Python一样运行您的代码。例如:

(Pdb)列表(范围(3))
***参数中有错误:'(范围(3))'
PDB有自己的
list
命令,可以用来显示源代码

(Pdb)!名单(范围(3))
[0, 1, 2]

通过使用
首先,该命令被正确地当作Python处理。

数据dict['id']
返回
[u'1012738']
,不是吗?谢谢!出于某种原因,data_dict['id']返回了字符串,我不需要[0]。@user1697845很高兴这有帮助,看起来
QueryDict
的行为与普通dict不同。谢谢,我刚刚尝试使用[0],但它仍然无法打印。当我打印数据时,我得到的是“1012738”,所以我认为它会自动打印[0]。是的,我已经忘记了,但这可能是Django
QueryDict
类的一个方便功能:如果一个项目是一个单元素列表,它会给你列表中的项目,而不是列表中的项目,或者类似的东西。这是我的猜测