2015-08-27 4 views
2

Я пишу CSV из поиска API (формат JSON), и я могу взять то, что мне нужно, но мой CSV довольно «грязный»:Удалить часть элемента в Python

{u'identifier': {u'identifier': u'the_real_identifier'}} 

мне нужно иметь, в моем файле csv, только the_real_identifier

Я знаю, что есть функция .remove(), но я не знаю, как заставить ее работать со всеми этими 'и {.

Кроме того, я не знаю, если это действительно работает внутри функции csv.write и/или я забыл что-то в моем коде:

with open('test1.csv', 'wb') as file2: 
    wr = csv.writer(file2) 
    for result['identifier'] in search1: 
     time.sleep(10) 
     wr.writerow([result]) 
+0

что такое 'search1'? – ozgur

+0

search1 - определение поиска через API –

ответ

3

Что-то вроде этого ?: (Test here)

d={u'identifier': {u'identifier': u'the_real_identifier'}, 
    u'identifier1': {u'identifier1': u'the_real_identifier1'}} 
res = [value[key] for key,value in d.items()] 
print(res) 
# ['the_real_identifier', 'the_real_identifier1'] 

Comparision работает так:

if(res[0]=='the_real_identifier'):print("identified") 
if(res[1]=='the_real_identifier1'):print("also identified") 

Или, если вы хотите, чтобы все результаты:

for item in res: 
    print(item) 

#the_real_identifier 
#the_real_identifier1 

В соответствии с просьбой в комментарии:

csv1 = "identifier1, identifier2, identifier3, identifier4" 
csv2 = [['identifier3'], ['identifier1'], ['identifier4'], ['new_item_4']] 

data = [item.strip() for item in csv1.split(",")] 

for item in csv2: 
    real_item = item[0] 
    if real_item not in data: 
     #this is a new one, we could add it to data 
     data.append(real_item) 


print(", ".join(data)) 
#identifier1, identifier2, identifier3, identifier4, new_item_4 
+0

Да, это действительно хорошо! Я прошу вас только одно: есть ли способ разрезать и «и []? Это потому, что тогда мне нужно сделать сравнение с другими чистыми идентификаторами Большое спасибо! –

+0

Ну, это всего лишь список элементов, вы можете получить к ним доступ с помощью res [0] и так далее. добавлен пример сравнения. – user2358582

+0

да, извините, я имел в виду, что мне нужно сравнить этот список с другим списком в другом csv, но «чистым». Это как это: csv1 = Identifier1, identifier2, identifier3, identifier4 csv2 (с API) = [ 'identifier3'], [ 'Identifier1'], [ 'identifier4'] Я думал об использовании difflib, он все равно может его распознать? –

Смежные вопросы