Форум сайта python.su
0
Добрый день!
Пока ещё не освоился со структурами в Питоне.
Потому не получается понять - как надо сформировать запрос к функции API на питоне, например, при добавлении нового пользователя в Юнисендер.
Описание функции API: http://www.unisender.com/ru/help/api/importContacts.html
Знакомые, сами не пишущие на Питоне- дали подсказку, как её, якобы, использовать:
api.importContacts(field_names='email', field_names='Name',data='1@1.com',data='Kir')
Однако этот вариант не работает, ругается на неправильное использование ключевого слова:
SyntaxError: keyword can't be an expression
Нужна Ваша помощь!
Также желателен пример как грамотно раскодировать ответ запроса.
Я сейчас делаю это топорно:
answer = api.importContacts('field_names=“email”, field_names=“Name”','data=“1@1.com”,data=“Kir”')
for lines in answer:
print ‘===’,lines,'==='
print ‘###1: ’, answer
Офлайн
25
По указанной вами ссылке - описание http api. Вы используете некую сущность ‘api’ у которой дергаете методы, логично предположить что ваше ‘api’ - это некая обвязка к апи из описания, вот в доках этой обвязки и смотрите.
Офлайн
0
s0rg
По указанной вами ссылке - описание http api. Вы используете некую сущность ‘api’ у которой дергаете методы, логично предположить что ваше ‘api’ - это некая обвязка к апи из описания, вот в доках этой обвязки и смотрите.
Есть примеры-обёртки для Рельсов и Сишарпа..def testMethodGetLists(self): title = u'Рассылка' lists = self.api.getLists() self.assertTrue(title in lists['result'][0]['title'])
lists['result'][0]['title']
Отредактировано paradigm (Март 28, 2013 19:28:36)
Офлайн
25
Если я все правильно понял из кода модуля, то вам нужно что-то такое:
api.importContacts({ 'field_names': ['email', 'Name'], 'data': ['1@1.com', 'Kir'] })
Офлайн
0
Итак, у меня всё заработало после некислого пути и труда.
Пишу “формулу счастья”.
Сначала надо найти файл pyunisend.py и в нём поменять строку
self.default_params = {'api_key':api_key, 'format':format, 'test_mode':test_mode}
self.default_params = {'api_key':api_key, 'format':format}
code: invalid_arg error: Некорректный параметр 'test_mode'

## Заливаем новых пользователей в базу Юнисендера в разные списки по их полу api = PyUniSend('ВАШ АПИ-КЛЮЧ') # Добавление новых пользователей в базу Юнисендера # http://www.unisender.com/ru/help/api/importContacts.html print 'Добавляем новых пользователей в Юнисендер..' answer = api.importContacts({'field_names': ['email', 'Name', 'email_list_ids'], 'data': [ ['Kir', '1@1.com', '1705282'], ['Andrew', '2@1.com', '1705282'] ]}) for lines in answer: print '===',lines,'===' print '###1: ', answer[lines], '\n' if lines=='result': for st in answer[lines]: if st in ['updated','deleted', 'new_emails', 'total', 'inserted'] : print ' = '+st+':',answer[lines][st] else: if st=='log': # Разбираем лог.. print ' = '+st+':' for log_line in answer[lines][st]: print 'index',log_line['index'], '\nmessage', log_line['message'], '\ncode', log_line['code'],'\n' else: # Неизвестный параметр, просто выводим его на печать print ' = ',st,':',answer[lines][st] # Активация новых пользователей в Юнисендере # http://www.unisender.com/ru/help/api/activateContacts.html print '\nАктивируем новых пользователей..' answer = api.activateContacts({'contact_type': 'email', 'contacts': [ '1@1.com', '2@1.com']}) for lines in answer: print '===',lines,'===' print '###1: ', answer[lines]
Офлайн
0
Добрый день, подскажите с чем может быть связана ошибка для этого модуля?
from pyunisend import PyUniSend
Офлайн
857
MarinaВерсия модуля могла измениться и там имена могли переделать разработчики модуля. То есть код писали для одной версии, а ты его запускаешь на другой версии.
Добрый день, подскажите с чем может быть связана ошибка для этого модуля?ImportError: cannot import name 'PyUniSend'
Отредактировано py.user.next (Авг. 24, 2018 01:56:45)
Офлайн
0
Да вроде то же имя используется class PyUniSend(object)
Офлайн
857
Выполни
import pyunisend print(pyunisend.PyUniSend)
Офлайн
0
Да, тоже самое тогда я вообще не понимаю как получить этот объект.
api = PyUniSend('ВАШ АПИ-КЛЮЧ')
Офлайн