• Цикл на повторение действия после прохождения каждой строки (xlrd)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Что-то примерно такое должно быть:
    Такое...
    import requests
    import xlrd
    from pathlib import Path
    
    
    def my_xml(citype, oldname, newname):
        return f'''<?xml version='1.0' encoding='UTF-8'?>
        <API version='1.0' >
            <citype>
                <name>{citype}</name>
                    <criterias>
                        <criteria>
                            <parameter>
                                <name compOperator="IS">CI Name</name>
                                <value>{oldname}</value>
                            </parameter>
                        </criteria>
                    </criterias>
                <newvalue>
                    <record>
                        <parameter>
                            <name>CI Name</name>
                            <value>{newname}</value>
                        </parameter>
                    </record>
                </newvalue>
            </citype>
        </API>'''
    
    
    if __name__ == '__main__':
        datafilename = Path('data.xls')
        datafilepath = Path.home() / Path('Documents/Pytest/')
        datafile = datafilepath / datafilename
        book = xlrd.open_workbook(datafile)
        sh = book.sheet_by_index(0)
        url_prefix = "http://qwerty.com/api/ci?OPERATION_NAME=update&INPUT_DATA="
        for i in range(0, sh.nrows):
            print(f'## Итерация номер {i} из {sh.nrows}.')
            oldname = str(sh.cell_value(rowx=i, colx=0))
            citype = str(sh.cell_value(rowx=i, colx=1))
            newname = str(sh.cell_value(rowx=i, colx=2))
            url = url_prefix + my_xml(oldname, citype, newname)
            requests.post(url)
    Ответ написан
    2 комментария
  • Как написать скрипт через API в Python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    можно через Postman, там нагляднее, но,увы - скрипты тоже учить

    если же уже шарите как отправлять запросы - то обычный цикл + str. replace или , если сложнее, regexp replace

    в целом застековерфловить Питон примеры будет легче Постмана
    Ответ написан
    Комментировать
  • Есть ли замена функции Промежуточные.Итоги?

    ForestAndGarden
    @ForestAndGarden
    Совершенствовать среду обитания
    1. Если вручную скрываете строки, используйте 109, а не 9.
    2. Варианты решения по ссылкам, которые выводит Яндекс по запросу промежуточные итоги с условием в excel не совместимы [у меня] с Гугл Таблицами (в Экселе проверить не могу).
    3. Достигнуть нужного результат легко с функцией СУММЕСЛИМН:
      =СУММЕСЛИМН(C2:C73;A2:A73;"Февраль";B2:B73;"Тест 1")
      Явное указание можно заменить на ячейки, в которых будут прописаны условия: =СУММЕСЛИМН(C2:C73;A2:A73;A75;B2:B73;B75) A75="Февраль", B75="Тест 1"
    4. Почему вам нужно доп. условие, если используя =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(109;C2:C73) и фильтрацию сразу по двум столбцам, вы получите нужный результат?
    Ответ написан
    2 комментария