Существует множество способов снятия шкуры с кошки:)
Прежде чем мы начнем, не используйте eval для строк, которые не являются вашими , поэтому, если строка когда-либо покидала вашу программу; то есть он остался в файле, отправлен по сети, кто-то может отправить что-то неприятное. И если кто-то может, вы можете быть уверены, что кто-то это сделает.
И, возможно, вы захотите просмотреть свой формат данных. Поместить в файл такие строки, как ["baa", "beee", "0", "\ n"], не имеет большого смысла для меня.
Первый и самый простой способ - просто убрать ненужные вещи и сравнить строки. Это будет работать до тех пор, пока строка '0' всегда выглядит одинаково, и вы на самом деле не после целого значения 0, а только шаблон символов:
TcsLine = '["baa","beee","0"]'
line = TcsLine.strip('[]').split(",")
if line[2] == '"0"':
print line
Второй способ будет аналогичен первому, за исключением того, что мы приводим числовую строку к целому числу, получая целочисленное значение, которое вы искали (но печатая 'line' без всех кавычек):
TcsLine = '["baa","beee","0"]'
line = [e.strip('"') for e in TcsLine.strip('[]').split(",")]
NumPFCs = int(line[2])
if NumPFCs==0:
print line
Может быть, строка на самом деле является массивом json? Тогда я, вероятно, пойду, получу simplejson , чтобы правильно его проанализировать, если я запускаю Python <2.6 или просто импортирую json на Python> = 2.6. Затем приведите полученную строку '0' к целому числу, как в предыдущем примере.
TcsLine = '["baa","beee","0"]'
#import json # for >= Python2.6
import simplejson as json # for <Python2.6
line = json.loads(TcsLine)
NumPFCs = int(line[2])
if NumPFCs==0:
print line