python3 unicode字符串比较

时间:2018-06-27 11:49:57

标签: python string python-3.x equals string-comparison

我有一个来自进程输出的字符串,该字符串似乎是unicode,并且我无法将其与“普通”字符串进行比较。

代码如下:

proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
result = re.match(r'#title#(?P<title>.*)#artist#(?P<artist>.*)#track#(?P<track>.*)#islive#(?P<islive>.*)', out.decode("utf-8"))
if result:
    print(result.group('islive'))
    print('na')

    print(result.group('islive').lower() == 'na')

输出:

u'NA'
na
False

python版本是Python 3.6.5。

我需要一些如何比较这两个字符串的帮助。

1 个答案:

答案 0 :(得分:0)

如果不能与u'na'进行比较(由于速度较快而应首选),则可以在比较之前对Unicode字符串进行utf-8编码。

proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
result = re.match(r'#title#(?P<title>.*)#artist#(?P<artist>.*)#track#(?P<track>.*)#islive#(?P<islive>.*)', out.decode("utf-8"))
if result:
    print(result.group('islive'))
    print('na')

    print(result.group('islive').lower().encode('utf8') == 'na')