#python #csv #twilio
#python #csv #twilio
Вопрос:
У меня есть программа на python, которая использует Twilio, которую я только что перенес из баз данных PKL в CSV. Я читал, что время доступа было примерно таким же, но хотел упростить редактирование.
Проблема в том, что Twilio любит ведущий » » для телефонных номеров (которые я храню в базе данных), но при редактировании в Excel он удаляет все эти ведущие знаки плюс.
Каков наилучший способ обработки хранилища телефонных номеров в python для Twilio?
def save_pkl(pkl, name):
with open(os.path.join(__location__,name '.pkl'), 'wb') as f:
pickle.dump(pkl, f, 0) #replace 0 with pickle.HIGHEST_PROTOCOL
def load_pkl(name):
with open(os.path.join(__location__,name '.pkl'), 'rb') as f:
return pickle.load(f)
def save_csv(obj, name):
f=open(os.path.join(__location__,name '.csv'),"wb")
writer=csv.writer(f)
if name=="customer":
writer.writerow(("Name","MobileNumber","Email","Joined"))
for number in obj:
writer.writerow((obj[number]["name"],number,obj[number]["email"],obj[number]["joined"]))
else:
writer.writerow(("Name","MobileNumber","Email"))
for number in obj:
writer.writerow((obj[number]["name"],number,obj[number]["email"]))
f.close()
def load_csv(name):
db={}
f=open(os.path.join(__location__,name '.csv'),"rb")
headers = next(f).strip().split(",")
freader = csv.reader(f)
for entry in freader:
name = entry[0]
mobilenumber = entry[1]
email = entry[2]
db[mobilenumber]={"name" : name, "email" : email}
if "Joined" in headers:
joined = entry[3]
db[mobilenumber]["joined"] = joined
f.close()
return db
Комментарии:
1. Можете ли вы предоставить свой код?
2. @xli Я только что добавил свои коды загрузки / сохранения pkl и csv
Ответ №1:
Первым приходит на ум галочка перед текстом, чтобы сохранить интерпретацию формул в ячейке, и она может быть полезной ( ex: ' 33 445 455 333)
.
За исключением того, что в CSV это не поддерживается. Кажется, это работает, но оно теряется при сохранении в CSV. Дополнительные кавычки также не работают.
В качестве альтернативы вы могли бы сохранить свою базу данных в формате XLSX вместо CSV
- начальная галочка выполняет свою работу
- Вы могли бы редактировать свой файл с помощью Excel так же легко
- в python есть как минимум 2 модуля для правильной обработки XLSX: openpyxl и xlrd
(Я надеюсь, вы не сочтете мой ответ основанным на мнении, потому что это правда, что может существовать несколько других допустимых решений)
Комментарии:
1. Спасибо. Я могу попробовать перейти на XLSX, но мне нужно терпение, чтобы преобразовать все снова. Я написал программу управления базами данных на python, которая довольно хорошо управляет PKLS, поэтому может просто сохранить это через easygui, но надеялся на более простое решение…
2.Разве галочка также не работает, когда для
csv
диалекта установлено значениеexcel
? Может быть, вы могли бы попробовать это.3. казалось логичным, что нужно сделать, но это зависит от вашего кода, конечно.
4. @MosesKoledoye: только что пробовал: съедает » » даже с
dialect="excel"
. Формат CSV очень ограничен.5.
dialect
Изменяется только то, какие символы используются для создания файла; это не меняет того, как приложение в конечном итоге обрабатывает его.