它是一个数组还是一个字符串?

Jes*_*sky 2 python arrays string

我给的数据可以是字符串或数组.我需要做不同的操作,具体取决于它是哪一个,所以我的问题是,如何判断对象是Python中的数组还是字符串?

conn = boto.connect_sdb(AWSKey, AWSSecret)
item = conn.get_domain(dName).get_item(imagekey)
tags = item['tag']

tags == array or string?
Run Code Online (Sandbox Code Playgroud)

Jim*_*som 5

不可否认,字符串是序列的事实有时很尴尬.如果要根据处理"真实"序列或字符串来实现不同的行为,可以使用如下构造:

if isinstance(some_obj, basestring):
    # do string processing
else:
    # do sequence processing
Run Code Online (Sandbox Code Playgroud)

您需要使用basestring正确处理unicode和非unicode字符串.

  • +1:PEP 8明确指出"对象类型比较应始终使用isinstance()而不是直接比较类型." 但请注意,`basetring`在2.3之前不可用,因此需要`isinstance(obj,(str,unicode))`来支持旧的解释器. (2认同)