@propython

Страница 202 из 228
Мурад
14.08.2018
20:46:41
подскажите пожалуйста, import psycopg2 query_parent_dealer ='''SELECT dealer_id from dealers WHERE parent_dealer = 1027 ''' cur = conn.cursor() cur.execute(query_parent_dealer) rows = cur.fetchall() print(rows[0])

почему-то возвращает значение с запятой в конце.

как извлечь без нее?

V
14.08.2018
20:49:33
как извлечь без нее?
может тип переменной поменять

Google
Мурад
14.08.2018
20:51:16
мне нужен массив и он в принципе и есть массивом типа лист

во что его преобразовать?

xPushkin
14.08.2018
21:36:43
Alexander
15.08.2018
05:07:28
почему-то возвращает значение с запятой в конце.
Он возвращает лист таплов. Можно просто сделать потом [x[0] for x in rows] чтобы получить "плоский" лист

Alexander
15.08.2018
06:37:44
да вы что, поехали там все. какой split(), какой join()? чувак получает list of tuples a-ля [(1, ), (2, ), (3,)]. метода split нет ни у list, ни у tuple. join`a тоже нет к слову. это все для строк. сомневаюсь что у него dealer_id это строка, т.к parent_dealer - int и psycopg тоже вернет инты. задача - получить массив. для этого нужно просто взять первый элемент из каждого кортежа, ибо он там и так один. итого: [(1, ), (2, ), (3,)] => [row[0] for row in rows] => [1,2,3]

к слову, если ожидается только одно значение , есть метод fetchone у курсора, но он тоже вернет кортеж - (1,). остается взять потом просто первое значение

Alexander
15.08.2018
06:47:06
join – преобразование list в string
во-первых, это метод строки. пишется ''.join([]). во-вторых, зачем?

сомневаюсь, что задача состоит в том, чтобы принтануть массив, скорее всего с ним подразумевается какая то работа потом

Google
Михаил
15.08.2018
06:51:30
join - метод массива

Alexander
15.08.2018
06:52:23
а в питоне нет

Михаил
15.08.2018
06:52:52
лолшто

Alexander
15.08.2018
06:53:09
https://docs.python.org/3/tutorial/datastructures.html#more-on-lists

Михаил
15.08.2018
06:53:10
что по-твоему делают split и join?

Alexander
15.08.2018
06:55:18
я знаю, что они делают. но в питоне у листа нет метода join. для преобразования листа в строку, нужно вызывать '-'.join([1,2,3]) => "1-2-3"

и то, для этого еще нужно инты в строки отдельно перевести

Михаил
15.08.2018
06:57:18
а, точно

ну ''.join(row)

Alexander
15.08.2018
07:10:36
ага. допустим ты решил сейчас задачу с принтом (на самом деле только наполовину, т.к. row будет содержать инты, а их надо еще в строки перевести руками), в итоге у тебя кортеж с единственным элементом (айдишкой, int) превратился в строку. а смысл? print наверняка для дебага. а не проще тогда сделать print(rows[0][0]) вместо print(''.join(rows[0])) (+не забываем про инты) а вообще, это же элементарная работа со встроеными типами. может лучше про них чуть почитать больше перед тем как браться за базы данных?

VLADIMIR
15.08.2018
07:58:59
What a great project you guys got here!! I have some promotional proposal for this team. Admin PM me if interested in knowing about the proposal.

Мурад
15.08.2018
09:02:17
Всем спасибо. Решил просто обращением к первому элементу массива

Руслан
15.08.2018
09:18:37
Примерно так
str="test123" str[:-1] не об этом речь идет?

Мурад
15.08.2018
09:21:40
Нет

Не строку же возвращал, а кортеж. Rows = cur.fetchall() For row in rows() : Print(row[0])

Так

Константин
15.08.2018
12:45:46
Есть скрипт https://github.com/Whalepool/BitMEX-Mark-Price Он даёт цену маркировки с биржи www.bitmex.com Задача: запустить скрипт на хостинге получать эту цену из скрипта и писать в Mysql Нужна так же инструкция как его запускать и какие приложения должны стоять для его работы на хостинге Предлагайте цены и сроки. нужно срочно запустить скрипт на питон и писать результат в Myqsl

Мурад
16.08.2018
02:37:19
сделал вот такую вот функцию def find_all_pays(point, month, year): query = '''SELECT sum(sum_amount) from dwh_day_point_operator WHERE point = '{0}' AND EXTRACT(MONTH FROM day) = '{1}' AND EXTRACT(YEAR FROM day) = '{2}' ''' cur = conn.cursor(query) cur.execute(query.format(point, month, year)) pays = cur.fetchall() cur.close() return pays

Google
Мурад
16.08.2018
02:37:19
вызываю ее find_all_pays(13940053,8,2018), но выдает ошибку psycopg2.ProgrammingError: unterminated quoted identifier at or near ""SELECT sum(sum_amount) from dwh_day_point_operator

кто может подсказать?

доброе утро. не подскажете почему?

Moon
16.08.2018
05:32:23
*чувствует себя дох#@ внимательным*

Moon
16.08.2018
06:50:04
Да???

Admin
ERROR: S client not available

Moon
16.08.2018
06:50:31
*чувствую себя них#@ не внимательным*

tonko
16.08.2018
06:51:22
Странео что в логе с ошибкой они четверные

Moon
16.08.2018
06:51:33
Ага

Moon
16.08.2018
06:51:37
Кажись нам врут

Мурад
16.08.2018
14:15:14
она ругается именно на второй аргумент

подстановка одного значения в запросе выполняется без проблем

Stepan
16.08.2018
15:11:12
Слушайте, вопрос не в кассу, но это такой вопрос.. не знаешь, где касса: хочется залезть в код моего xiaomi и посмотреть, как он обрабатывает картинки в портретном режиме... Кто-нибудь знает, как это делается?

Alexander
16.08.2018
17:50:35
вызываю ее find_all_pays(13940053,8,2018), но выдает ошибку psycopg2.ProgrammingError: unterminated quoted identifier at or near ""SELECT sum(sum_amount) from dwh_day_point_operator
Есть вероятность что у тебя не три одинарные кавычки, а одна одинарная и одна двойная.

+ зачем format? execute умеет параметры принимать и экранировать их. Это безопаснее http://initd.org/psycopg/docs/cursor.html#cursor.execute

alex
16.08.2018
17:53:51
кто работал с модулем csv?

Google
Мурад
16.08.2018
17:58:41
def find_all_pays_sum(point, month, year): query = '''SELECT sum(sum_amount) from dwh_day_point_operator WHERE point = '{0}' AND EXTRACT(MONTH FROM day) = {1} AND EXTRACT(YEAR FROM day) = {2} ''' cur = conn.cursor() cur.execute(query.format(point, month, year)) pays = cur.fetchall() cur.close() return pays

Alexander
16.08.2018
18:05:26
кто работал с модулем csv?
Думаю много кто работал. Вопрос то в чем?

alex
16.08.2018
18:07:53
writer.writerow((example, links)) есть такая штука, но у меня example лист, и эта штука записывается как лист, как записать всё в одну строчку как не лист

Alexander
16.08.2018
18:12:01
writer.writerow((example, links)) есть такая штука, но у меня example лист, и эта штука записывается как лист, как записать всё в одну строчку как не лист
В writerow нужно просто передать лист. Если у тебя оба example и links - листы то можно так: writerow(example + links)

alex
16.08.2018
18:12:31
exmaple list, links str

Alexander
16.08.2018
18:12:55
Ну тогда example + [links]

alex
16.08.2018
18:12:57
и выводит ['...', '....' , ''] , ....

надо , чтобы записывало .... .... .... ... , ...

Alexander
16.08.2018
18:14:53
тогда writerow([' '.join(example), links])

alex
16.08.2018
18:15:37
да, спасибо

Страница 202 из 228