0
0 комментариев

Версия Python 3.6, Windows

Есть два кода: 1) В первом выдается ошибка

<span class="ansi-green-intense-fg ansi-bold">53</span>         <span class="ansi-green-intense-fg ansi-bold">and</span> o<span class="ansi-yellow-intense-fg ansi-bold">.</span>cdate between<span class="ansi-blue-intense-fg ansi-bold">" + "</span><span class="ansi-blue-intense-fg ansi-bold">'"+ str(d1) + "'</span><span class="ansi-blue-intense-fg ansi-bold">" +"</span> <span class="ansi-blue-intense-fg ansi-bold">" + "</span>AND<span class="ansi-blue-intense-fg ansi-bold">" + "</span> <span class="ansi-blue-intense-fg ansi-bold">"+ "</span><span class="ansi-blue-intense-fg ansi-bold">'" + str(d2) + "'</span><span class="ansi-red-fg">"</span>
<span class="ansi-red-intense-fg ansi-bold">TypeError</span>: unsupported operand type(s) for -: 'str' and 'str'

2) Второй запускается и отрабатывает без ошибок, хотя у него есть почти такая же строчка

and t.operation_date BETWEEN» + «‘»+ str(d1) + «‘» +» » + «AND» + » «+ «‘» + str(d2) + «‘»

[apcode language=»python»]

import pandas as pd
import win32com.client as wincl
from pandas import ExcelWriter
from pandas import ExcelFile
import subprocess
from tkinter.filedialog import askopenfilename
import pymysql.cursors
import csv                                                                             # Запись в файл
print('Выберите файл с данными от Heidi SQL')
file = askopenfilename()
f = open(file)
 id = f.readline()
id1 = id[:-1]
passw = f.readline()
connection = pymysql.connect(host='blackbox.mysql.avia.tutu.ru',user=str(id1),password=str(passw),db='busorder',charset='utf8mb4')
print("SQL connect successfull")
print('Введите первый день отчетного периода (в формате гггг-мм-дд)')
d1 = input()
print('Введите первый день следующего периоа (в формате гггг-мм-дд)')
d2 = input()
try:
    with connection.cursor() as cursor:
        sql = "select o.gds, \
        concat(o.first_name, " ", o.last_name) as 'ИФ', \
        t.number, \
        t.external_id, \
        concat(o.departure_city_name, " - ", o.arrival_city_name) as 'Маршрут', \
        'issue' as 'Операция', \
        o.state, \
        o.cdate, \
        o.external_id, \
        o.external_order_id, \
        es.price as 'Цена билетов', \
        es.tariff+ es.partner_markup as 'Тариф партнера', \
        es.tutu_markup+ es.technical_markup-es.markup_discount as 'с/с', \
        ifnull(po.engine_payment_id,pob.engine_payment_id), \
        o.id, \
        0 as 'Платное обучение', \
        t.status as 'Тип', \
        es.price_original  as'Цена билетов (BYN), \
        o.departure_date as 'Дата отправления', \
        concat(p.first_name, " ", p.middle_name, " ", p.last_name) as 'ИФ пассажира' \
        from busorder.order_backoffice o \
        left join busorder.ticket t on t.order_id=o.id \
        left join buspricing.estimate es on es.id = t.estimate_id \
        left join busgateline.rm_paymentgate_object po on po.order_id = o.id \
        left join busboxplat.rm_paymentgate_object pob on pob.order_id = o.id \
        left join busorder.passenger p on p.order_id = o.id and p.id = t.passenger_id \
        where and o.gds = '['busbeltranscom']' \
        and o.state like '%iss%' \
        and t.status not in ('canceled' ,'waiting','repealed', 'booked')\
        and o.cdate between" + "'"+ str(d1) + "'" +" " + "AND" + " "+ "'" + str(d2) + "'" 
                 df = pd.read_sql(sql,connection)
        writer = pd.ExcelWriter('C:\\Users\\username1\\Desktop\\filename.xlsx')
        df.to_excel(writer, ' Наш реестр')
finally:
    connection.close()
writer.save()
print('Downloading TUTU db success')

[/apcode][apcode language=»php»]

import pandas as pd
import win32com.client as wincl
from pandas import ExcelWriter
from pandas import ExcelFile
import subprocess
from tkinter.filedialog import askopenfilename
import pymysql.cursors
import csv                                                                               # Запись в файл
print('Выберите файл с данными от Heidi SQL')
file = askopenfilename()
f = open(file)
 id = f.readline()
id1 = id[:-1]
passw = f.readline()
connection = pymysql.connect(host='blackbox.mysql.avia.tutu.ru',user=str(id1),password=str(passw),db='favia',charset='utf8mb4')
print("SQL connect successfull")
print('Введите первый день отчетного периода (в формате гггг-мм-дд)')
d1 = input()
print('Введите первый день следующего периоа (в формате гггг-мм-дд)')
d2 = input()
try:
    with connection.cursor() as cursor:
        sql ="select t.operable_number,t.operation_date,t.order_id,(t.base_fare) as 'Тариф',\
        (t.base_taxes) as 'Таксы',\
        (t.base_penalty) as 'Штрафы',\
        (t.total_commission) as 'Вознаграждение' \
        from favia.rm_fprice_report_iata_ticket t \
        WHERE t.hidden=0\
        and t.operation_date BETWEEN" + "'"+ str(d1) + "'" +" " + "AND" + " "+ "'" + str(d2) + "'" 
                 df = pd.read_sql(sql,connection)
        writer = pd.ExcelWriter('C:\\Users\\usermane1\\Desktop\\filename.xlsx')
        df.to_excel(writer, ' Наш реестр')
finally:
    connection.close()
writer.save()
print('Downloading TUTU db success')

[/apcode]


Добавить комментарий