当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。
★エラーを解決したい場合★は、
表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。
Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi
〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その54
https://mevius.5ch.net/test/read.cgi/tech/1623240344/
次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
【まず1嫁】くだすれPython(超初心者用) その55
■ このスレッドは過去ログ倉庫に格納されています
2021/10/01(金) 15:46:47.17ID:9qOHXj6D
379デフォルトの名無しさん
2021/11/01(月) 17:10:45.07ID:+PGSxGGW class Cls(object):
def __new__(cls):
self = object.__new__(cls)
print('__new__ :', str(id(self)))
return self
def __init__(self):
print('__init__:', str(id(self)))
self.attr = 'Hello, world!'
obj = Cls()
def __new__(cls):
self = object.__new__(cls)
print('__new__ :', str(id(self)))
return self
def __init__(self):
print('__init__:', str(id(self)))
self.attr = 'Hello, world!'
obj = Cls()
380デフォルトの名無しさん
2021/11/01(月) 17:11:37.02ID:+PGSxGGW >>378
chmateだと大丈夫っぽい
chmateだと大丈夫っぽい
381デフォルトの名無しさん
2021/11/01(月) 17:17:16.17 テスト
連続全角スペース 2個
「 」
連続半角スペース 2個
「 」
連続アンダーバー 2個
「__」
連続全角スペース 2個
「 」
連続半角スペース 2個
「 」
連続アンダーバー 2個
「__」
382デフォルトの名無しさん
2021/11/01(月) 17:19:02.31 続いてテスト
先頭空白の、
連続全角スペース 2個
」
連続半角スペース 2個
」
連続アンダーバー 2個
__
先頭空白の、
連続全角スペース 2個
」
連続半角スペース 2個
」
連続アンダーバー 2個
__
383デフォルトの名無しさん
2021/11/01(月) 17:22:16.44ID:er84fHxI 2ch初心者かてw
384デフォルトの名無しさん
2021/11/01(月) 17:33:20.31ID:usQd0Ibl まあ
全角スペース積んで
それらしいインデント表現できるなら
とはいえ全角スペースって…
あと>>379はパソコンで表示できねーのでやめとけ
全角スペース積んで
それらしいインデント表現できるなら
とはいえ全角スペースって…
あと>>379はパソコンで表示できねーのでやめとけ
385デフォルトの名無しさん
2021/11/01(月) 17:46:32.90ID:bBJfHO04 コーディングでアンダーバーってあんま聞かない
386デフォルトの名無しさん
2021/11/01(月) 17:48:52.19 ちなみに過去スレみても全角スペースインデント派が極端に少ないように思えるけどなぜ
387デフォルトの名無しさん
2021/11/01(月) 17:50:38.30ID:SSiHi0ki Pythonはインデントそのものに文法的な意味があるから、他言語スレのような雑なコピペ、やりにくい
388デフォルトの名無しさん
2021/11/01(月) 17:51:32.34 専ブラによってはAA補正機能ONだと全角スペースはズレるから、とかかな
389デフォルトの名無しさん
2021/11/01(月) 17:51:53.67ID:rjS1S2Zt >>1も読めないのか
390デフォルトの名無しさん
2021/11/01(月) 17:54:59.57ID:QIRv2mIK 意味があるからこそアンダーバーで表現してるんでしょ
5ch内では_が確実
コピペするなら^_*くらい置換しろよ
5ch内では_が確実
コピペするなら^_*くらい置換しろよ
391デフォルトの名無しさん
2021/11/01(月) 17:57:14.59ID:SSiHi0ki >>390
__init__ とか __main__ みたいにアンダーバーで始まる予約キーワードがあるから厳しいかも
__init__ とか __main__ みたいにアンダーバーで始まる予約キーワードがあるから厳しいかも
392デフォルトの名無しさん
2021/11/01(月) 18:06:02.27 >>1
if エラーを解決したい場合:
print('表示されたエラーの全文')
print('実行環境')
else:
if インデントが崩れてチヌ:
コードうp用サイトに貼ってこいください()
else:
ご自由に()
#エラー解決が目的でなく、ただの質問なら自由でおk
if エラーを解決したい場合:
print('表示されたエラーの全文')
print('実行環境')
else:
if インデントが崩れてチヌ:
コードうp用サイトに貼ってこいください()
else:
ご自由に()
#エラー解決が目的でなく、ただの質問なら自由でおk
393デフォルトの名無しさん
2021/11/01(月) 18:21:31.02ID:lFi5lRVR アンダバダバ
394デフォルトの名無しさん
2021/11/01(月) 18:32:01.31ID:SSiHi0ki お前の力はそんなものか
395デフォルトの名無しさん
2021/11/01(月) 18:37:52.01ID:4nNYTPSv さっさと掲示板の設定変えろよタコ管理人
396デフォルトの名無しさん
2021/11/01(月) 18:38:19.50ID:4nNYTPSv アンダーバーの代わりに全部🐙にするか
397デフォルトの名無しさん
2021/11/01(月) 20:11:25.62ID:nDDBE8sn 馬鹿に優しすぎるスレも考え物
398デフォルトの名無しさん
2021/11/01(月) 20:47:47.51ID:b8DEaY2C くだらない質問スレの略なんだから
くだらない人間も許容範囲だろう
くだらない人間も許容範囲だろう
399デフォルトの名無しさん
2021/11/01(月) 20:56:53.14ID:+3mYHrQj 全角スペースでいい
行頭からの全角スペース連続なら簡単に置換できる
行頭からの全角スペース連続なら簡単に置換できる
400デフォルトの名無しさん
2021/11/01(月) 21:03:19.83ID:+3mYHrQj   でテスト
space(0)
space(1)
space(2)
space(3)
space(4)
space(0)
space(1)
space(2)
space(3)
space(4)
401デフォルトの名無しさん
2021/11/01(月) 21:05:46.67ID:+3mYHrQj これ使えるじゃん
402デフォルトの名無しさん
2021/11/01(月) 21:32:35.81ID:sInySGRJ 少なくともwebブラウザでは使えてないですよ
403デフォルトの名無しさん
2021/11/01(月) 21:39:19.38ID:SSiHi0ki 今一歩じゃったのう
404デフォルトの名無しさん
2021/11/01(月) 21:43:46.72ID:+3mYHrQj じゃ、スペース併用で
space(0)
space(1)
space(2)
space(3)
space(4)
もう一つのパターン
space(0)
space(1)
space(2)
space(3)
space(4)
space(0)
space(1)
space(2)
space(3)
space(4)
もう一つのパターン
space(0)
space(1)
space(2)
space(3)
space(4)
405デフォルトの名無しさん
2021/11/01(月) 21:44:11.57ID:+3mYHrQj はは、全滅w
406デフォルトの名無しさん
2021/11/01(月) 21:46:15.35ID:SSiHi0ki 情けなや
407デフォルトの名無しさん
2021/11/01(月) 22:04:51.14ID:FRFHTlVD408デフォルトの名無しさん
2021/11/01(月) 22:07:56.25ID:FRFHTlVD すまん間違って書き込んでしもた
& だとどうか
space(0)
space(1)
space(2)
space(3)
space(4)
& だとどうか
space(0)
space(1)
space(2)
space(3)
space(4)
409デフォルトの名無しさん
2021/11/01(月) 22:10:07.03ID:vUqioc9F space(0)
space(1)
space(2)
space(3)
space(4)
space(1)
space(2)
space(3)
space(4)
410デフォルトの名無しさん
2021/11/01(月) 22:11:42.44ID:SSiHi0ki 諸行無常よのう
411デフォルトの名無しさん
2021/11/01(月) 22:23:30.61ID:b8DEaY2C ババア100円くれてやるから大人しくゲームやってろ
412デフォルトの名無しさん
2021/11/01(月) 22:38:15.86ID:SSiHi0ki ありがたや
413デフォルトの名無しさん
2021/11/01(月) 22:56:34.54ID:sInySGRJ 結局のところ専ブラによって半角スペースの扱いと同等とみなす文字違うから
トリッキーな事するくらいなら>>1のサイト使った方がいいかと
トリッキーな事するくらいなら>>1のサイト使った方がいいかと
414デフォルトの名無しさん
2021/11/02(火) 00:04:30.18ID:cL54tPf/ 別サイトに散らすと、そちらのほうが消えれば集合知としての掲示板の意味がなくなる
415デフォルトの名無しさん
2021/11/02(火) 00:09:02.19ID:lNPw5frO pythonどころか5ch初心者ですが質問いいですか?
anacondaでのライブラリのロードが出来ない事での質問です
anacondaでのライブラリのロードが出来ない事での質問です
416デフォルトの名無しさん
2021/11/02(火) 09:39:34.41ID:px0qcy1y anaconda より pip
417デフォルトの名無しさん
2021/11/02(火) 14:07:05.67ID:9BPbJ83e ターミナルからライブラリ自体はダウンロード出来て、それがライブラリとして存在しているのは確認出来たのですが、
本文
#%matplotlib inline
import numpy as np
from scipy import sparse
#import matplotlib.pyplot as plt
import pandas as pd
#import matplotlib
import mglearn
from IPython.display import display
import sys
import scipy as sp
エラー内容
ImportError: dlopen(/opt/anaconda3/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so, 2): Library not loaded: @rpath/libjpeg.9.dylib
Referenced from: /opt/anaconda3/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so
Reason: Incompatible library version: _imaging.cpython-38-darwin.so requires version 14.0.0 or later, but libjpeg.9.dylib provides version 12.0.0
やってみたこと
ライブラリのバージョンダウン
本文
#%matplotlib inline
import numpy as np
from scipy import sparse
#import matplotlib.pyplot as plt
import pandas as pd
#import matplotlib
import mglearn
from IPython.display import display
import sys
import scipy as sp
エラー内容
ImportError: dlopen(/opt/anaconda3/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so, 2): Library not loaded: @rpath/libjpeg.9.dylib
Referenced from: /opt/anaconda3/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so
Reason: Incompatible library version: _imaging.cpython-38-darwin.so requires version 14.0.0 or later, but libjpeg.9.dylib provides version 12.0.0
やってみたこと
ライブラリのバージョンダウン
418デフォルトの名無しさん
2021/11/02(火) 14:09:16.74ID:9BPbJ83e 環境
python3.8
ide : anaconda juster notebook
os : macos catalina 10.15.7
python3.8
ide : anaconda juster notebook
os : macos catalina 10.15.7
419デフォルトの名無しさん
2021/11/02(火) 14:49:20.75ID:bBu0w1jV 別のlijpeg.dylibを読んでるな
これだからanacondaのクソッタレは
これだからanacondaのクソッタレは
420デフォルトの名無しさん
2021/11/02(火) 15:31:56.15ID:px0qcy1y anaconda が糞な訳じゃなくて >>415 があほなんだと思う
421デフォルトの名無しさん
2021/11/02(火) 16:28:48.44ID:43SS6bxs 既存の環境にぐちゃぐちゃ絡みつくからなあ
venv+pipよ
venv+pipよ
422デフォルトの名無しさん
2021/11/02(火) 17:41:01.75ID:9BPbJ83e libjpeg.dylib調べてきます。
ほんと初心者でわからんことばっかっす。
ほんと初心者でわからんことばっかっす。
423デフォルトの名無しさん
2021/11/02(火) 19:29:02.24ID:0Xy7v0Wb pipenvって少数派なのかな
424デフォルトの名無しさん
2021/11/02(火) 19:38:43.07ID:EooZJJGk pythonのパッケージマネージャーはもうpoetry一択って結論出てる
PEP582が実現すればいずれPDMも選択肢に入るかもしれない
いずれにせよ現時点ではpoetry以外を使う理由はない
PEP582が実現すればいずれPDMも選択肢に入るかもしれない
いずれにせよ現時点ではpoetry以外を使う理由はない
425デフォルトの名無しさん
2021/11/02(火) 20:21:58.23ID:wdD0/4p6 俺はvenv一択だわ
426デフォルトの名無しさん
2021/11/02(火) 20:59:02.62ID:28sKmwTr 標準使うのが一番、便利な流行り機能はどうせ標準に取り込まれるんだから
あちゃこちゃ手出すよりvenv一択!
あちゃこちゃ手出すよりvenv一択!
427デフォルトの名無しさん
2021/11/02(火) 21:20:27.32ID:cQGNBQWf cpython + pipで困ったことねぇぞ
428デフォルトの名無しさん
2021/11/02(火) 21:27:18.90ID:U4IKz2Wy そういやエレキバンとかいう湿布薬あったよな
429デフォルトの名無しさん
2021/11/02(火) 21:47:58.98ID:fH8EJWuw >>428
p!p
p!p
430デフォルトの名無しさん
2021/11/02(火) 22:59:40.27ID:AuiSCc2n 湿布じゃねぇ、磁石だよ
431デフォルトの名無しさん
2021/11/02(火) 23:04:27.39ID:6VLiUVJr 漏れは、WSL2, Ubuntu 18.04 で、
日本人が作った、バージョンマネージャーのanyenv を使っている
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
これで、ruby, node.js などの多言語のバージョンを、統一的に扱える。
各バージョンマネージャーの使い方を覚えなくても良いので楽
which ruby
~/.anyenv/envs/rbenv/shims/ruby
which node
~/.anyenv/envs/nodenv/shims/node
日本人が作った、バージョンマネージャーのanyenv を使っている
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
これで、ruby, node.js などの多言語のバージョンを、統一的に扱える。
各バージョンマネージャーの使い方を覚えなくても良いので楽
which ruby
~/.anyenv/envs/rbenv/shims/ruby
which node
~/.anyenv/envs/nodenv/shims/node
432デフォルトの名無しさん
2021/11/02(火) 23:20:25.55ID:v7s6xs3o この業界で日本人が作った、ってデバフでしかないが
433431
2021/11/03(水) 00:00:30.86ID:XfZZ+0lv でも、有名な多言語のバージョンマネージャーは、asdf/anyenv しかないでしょ?
434431
2021/11/03(水) 00:09:48.64ID:XfZZ+0lv 特に、node.js では、ndenv がnodenv へ乗り換えるように言ってて、
他には、nvm, n を使う人もいる
バージョンマネージャーが乱立していて、訳が分からない
他には、nvm, n を使う人もいる
バージョンマネージャーが乱立していて、訳が分からない
435デフォルトの名無しさん
2021/11/03(水) 00:25:34.93ID:U7i9huA/ 全然訳が分からなくない
nvm以外は泡沫
日本のみnodebrewのシェアが少し高いくらい
env系使ってるのは他言語から渡ってきて「ヤダヤダ、違うの覚えるのヤダー!」ってダダ捏ねてる無能のみ
nvm以外は泡沫
日本のみnodebrewのシェアが少し高いくらい
env系使ってるのは他言語から渡ってきて「ヤダヤダ、違うの覚えるのヤダー!」ってダダ捏ねてる無能のみ
436デフォルトの名無しさん
2021/11/03(水) 01:28:38.00ID:f3FJf/OR そこまで多言語に対応する必要ないんだよね
自分で使う言語選べる立場だからさ
糖質でも採用されるようなクソザコの下請けと違うんだよ
自分で使う言語選べる立場だからさ
糖質でも採用されるようなクソザコの下請けと違うんだよ
437デフォルトの名無しさん
2021/11/03(水) 05:23:29.54ID:ixyj7YWU 何とかenvの乱立がPython普及の足かせになってる
ググるとオワコンenvの情報が膨大に引っかかってくるので
初心者が最適解を見つけるのはまず不可能
ブログやQiitaに古い記事を置きっぱなしのやつらは
汚染源になっていることを自覚して欲しい
ググるとオワコンenvの情報が膨大に引っかかってくるので
初心者が最適解を見つけるのはまず不可能
ブログやQiitaに古い記事を置きっぱなしのやつらは
汚染源になっていることを自覚して欲しい
438デフォルトの名無しさん
2021/11/03(水) 07:43:38.65ID:BG+5d98e >>437
今現在の最適解は教えてくれないの?w
今現在の最適解は教えてくれないの?w
439デフォルトの名無しさん
2021/11/03(水) 08:11:09.61ID:0vsVupAD venv+pip で良いのでは?
440デフォルトの名無しさん
2021/11/03(水) 08:14:46.32ID:Ubw2Gqz6 docker + poetry
仮想環境なんか使う必要ない
コンテナイメージ変える方がシンプルで取り回しがいい
仮想環境なんか使う必要ない
コンテナイメージ変える方がシンプルで取り回しがいい
441デフォルトの名無しさん
2021/11/03(水) 08:42:58.91ID:RAebC74D seleniumの設定について教えてください。
navigator.webdriverをFalseにしたいです。
普段は下記で起動しているのですが、何を追加したらnavigator.webdriverをFalseにできますか?
from selenium.webdriver import Chrome, ChromeOptions, Remote
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.action_chains import ActionChains
import lxml.html
import random
import time
import re
import numpy as np
options = ChromeOptions()
#windowサイズを決める
options.add_argument('--window-size=1920,1600')
#プロファイルを追加する
options.add_argument('--user-data-dir=/home/goya/crawler/profile')
#ヘッドレスモードを有効にさせる場合は、次の行のコメントアウトを解除する
#options.headless = True
#ChromeのWebDriverオブジェクトを作成する。
driver = Chrome(options=options)
navigator.webdriverをFalseにしたいです。
普段は下記で起動しているのですが、何を追加したらnavigator.webdriverをFalseにできますか?
from selenium.webdriver import Chrome, ChromeOptions, Remote
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.action_chains import ActionChains
import lxml.html
import random
import time
import re
import numpy as np
options = ChromeOptions()
#windowサイズを決める
options.add_argument('--window-size=1920,1600')
#プロファイルを追加する
options.add_argument('--user-data-dir=/home/goya/crawler/profile')
#ヘッドレスモードを有効にさせる場合は、次の行のコメントアウトを解除する
#options.headless = True
#ChromeのWebDriverオブジェクトを作成する。
driver = Chrome(options=options)
442デフォルトの名無しさん
2021/11/03(水) 10:11:10.96ID:ixyj7YWU443431
2021/11/03(水) 11:56:46.09ID:XfZZ+0lv anyenv update
で、anyenvで入れた、**env系の全てをアップデートできる
anyenv-git は、
anyenv git pull
で、anyenvで入れた、**env系の全てのgitコマンドを実行する
rbenv install -l
3.0.2
nodenv install -l
17.0.1
多言語をやる人は、操作が統一されているから良い
で、anyenvで入れた、**env系の全てをアップデートできる
anyenv-git は、
anyenv git pull
で、anyenvで入れた、**env系の全てのgitコマンドを実行する
rbenv install -l
3.0.2
nodenv install -l
17.0.1
多言語をやる人は、操作が統一されているから良い
444デフォルトの名無しさん
2021/11/03(水) 12:02:48.24ID:6fv+OhcH445デフォルトの名無しさん
2021/11/03(水) 12:29:05.33ID:sUOJ6x6J446デフォルトの名無しさん
2021/11/03(水) 13:02:51.65ID:RAebC74D447デフォルトの名無しさん
2021/11/03(水) 13:58:05.52ID:RAebC74D >>444
navigator.webdriverをFalseにできました!!
設定できてからしばらくはクローリングできてたんですけど、すぐにまたbot認定されてしまいました。
ほかに何をすればbot認定回避できるんだろう?
昨日まではnavigator.webdriverをFalseにしてなくても問題なくクローリングできてたのに。。。
navigator.webdriverをFalseにできました!!
設定できてからしばらくはクローリングできてたんですけど、すぐにまたbot認定されてしまいました。
ほかに何をすればbot認定回避できるんだろう?
昨日まではnavigator.webdriverをFalseにしてなくても問題なくクローリングできてたのに。。。
448デフォルトの名無しさん
2021/11/03(水) 14:02:36.28ID:YDDGMZzD webdriverをFalseにしても駄目ならそのサイトがどういうbot対策してるか次第だろう
一般的な回答はない
一般的な回答はない
449デフォルトの名無しさん
2021/11/03(水) 14:09:18.92ID:t3xorxmT450デフォルトの名無しさん
2021/11/03(水) 15:29:02.45ID:RAebC74D >>448
ログインせずにamazonをスクレイピングしてたんだ。
新品出品者一覧ページだけが今日からどうしても取れなくなった。
navigator.webdriverをFalseにしてもだめ。
useragentのクロームのバージョンをいじると少しの間はスクレイピングできるんだが、少しするとロボット対策ページがでるようになる
ログインせずにamazonをスクレイピングしてたんだ。
新品出品者一覧ページだけが今日からどうしても取れなくなった。
navigator.webdriverをFalseにしてもだめ。
useragentのクロームのバージョンをいじると少しの間はスクレイピングできるんだが、少しするとロボット対策ページがでるようになる
451デフォルトの名無しさん
2021/11/03(水) 16:15:33.24ID:aF9H0I8F Amazonみたいな大企業がマジメに対策してるんだから諦めて別の手段を考えろ
452デフォルトの名無しさん
2021/11/03(水) 16:51:02.51ID:ge6GYHfK >>442
venv一択
venv一択
453デフォルトの名無しさん
2021/11/03(水) 17:08:14.27ID:seSNXpAW 標準モジュールだしな
454デフォルトの名無しさん
2021/11/03(水) 19:46:52.23ID:RAebC74D >>449のundetected_chromedriverも試してみたけどだめそうだ
今日から急にできなくなったから他の人にも影響でて誰か解決策を見つけてくれることを祈ろう
今日から急にできなくなったから他の人にも影響でて誰か解決策を見つけてくれることを祈ろう
455デフォルトの名無しさん
2021/11/03(水) 21:06:34.94ID:Q82Zq3XZ ツイッターで見かけたんだけど
tkinterのentryで
選択範囲に何かすると検証可否に関わらず選択範囲と中身が消える挙動って
こんだけしないと回避できないの?
https://i.imgur.com/ldiCdw0.jpg
tkinterのentryで
選択範囲に何かすると検証可否に関わらず選択範囲と中身が消える挙動って
こんだけしないと回避できないの?
https://i.imgur.com/ldiCdw0.jpg
456デフォルトの名無しさん
2021/11/03(水) 21:37:10.82ID:seSNXpAW 目的がAmazonの商品情報ならAPIつかえばいいのに
習作ならAmazonに固執する必要ないし
習作ならAmazonに固執する必要ないし
457デフォルトの名無しさん
2021/11/03(水) 22:14:34.64ID:nn1iuVsd APIは無料じゃないので。
458デフォルトの名無しさん
2021/11/04(木) 00:07:35.54ID:EUukbb+u そりゃそうだ
459デフォルトの名無しさん
2021/11/04(木) 03:13:20.72ID:vgkZPDuF venv環境内でpip install --user 自作のパッケージのpath としてもERROR: Can not perform a "--user" install. User site-package are not visible in this virtualenv.と出て出来ません
どうすればいいですか?
どうすればいいですか?
460デフォルトの名無しさん
2021/11/04(木) 03:18:07.61ID:vgkZPDuF いやvnevの中だから--user要らないのか
解決しました
解決しました
461デフォルトの名無しさん
2021/11/04(木) 08:04:19.17ID:KwnMOXlw462デフォルトの名無しさん
2021/11/04(木) 11:06:53.47ID:JyTL4wpj463デフォルトの名無しさん
2021/11/05(金) 07:42:42.91ID:aGM278ZV psycopg2でpostgresqlを勉強してるのですが下記のクエリを実行するにはpsycopg2でどう書けばいいですか?
SELECT
user_id
, CASE
WHEN register_device = 1 THEN 'PC'
WHEN register_device = 2 THEN 'SP'
WHEN register_device = 3 THEN ' アプリ '
-- デフォルトの値を指定する場合は ELSE 句を用いる
-- ELSE ''
END AS device_name
FROM mst_users
;
下記で実行してもうまくいきませんでした。
SELECT
user_id
, CASE
WHEN register_device = 1 THEN 'PC'
WHEN register_device = 2 THEN 'SP'
WHEN register_device = 3 THEN ' アプリ '
-- デフォルトの値を指定する場合は ELSE 句を用いる
-- ELSE ''
END AS device_name
FROM mst_users
;
下記で実行してもうまくいきませんでした。
464デフォルトの名無しさん
2021/11/05(金) 07:43:49.46ID:aGM278ZV # psycopg2 モジュールのインポート
import psycopg2
# PostgreSQL Server へ接続
conn = psycopg2.connect('host=localhost port=5432 dbname=〇〇 user=〇〇 password=〇〇')
# カーソルを取得
c = conn.cursor()
#execute()メソッドでSQL文を実行する。
#このスクリプトを何回実行しても同じ結果になるようにするため、mst_usersテーブルが存在する場合は削除する。
c.execute('DROP TABLE IF EXISTS mst_users')
#mst_usersテーブルを作成する。
c.execute("""
CREATE TABLE mst_users(
"user_id" text,
"register_data" text,
"register_device" integer
)
""")
#executemany()メソッドでは複数のパラメーターのリストで指定できる。
#パラメーターの数(ここでは3つ)のSQLを順に実行できる。
c.executemany('INSERT INTO mst_users VALUES(%(user_id)s, %(register_data)s, %(register_device)s)',
[{"user_id":"u003","register_data":"2016-08-27", "register_device":2},
{"user_id":"u004","register_data":"2016-08-28", "register_device":3},
{"user_id":"u005","register_data":"2016-08-29", "register_device":2},
])
import psycopg2
# PostgreSQL Server へ接続
conn = psycopg2.connect('host=localhost port=5432 dbname=〇〇 user=〇〇 password=〇〇')
# カーソルを取得
c = conn.cursor()
#execute()メソッドでSQL文を実行する。
#このスクリプトを何回実行しても同じ結果になるようにするため、mst_usersテーブルが存在する場合は削除する。
c.execute('DROP TABLE IF EXISTS mst_users')
#mst_usersテーブルを作成する。
c.execute("""
CREATE TABLE mst_users(
"user_id" text,
"register_data" text,
"register_device" integer
)
""")
#executemany()メソッドでは複数のパラメーターのリストで指定できる。
#パラメーターの数(ここでは3つ)のSQLを順に実行できる。
c.executemany('INSERT INTO mst_users VALUES(%(user_id)s, %(register_data)s, %(register_device)s)',
[{"user_id":"u003","register_data":"2016-08-27", "register_device":2},
{"user_id":"u004","register_data":"2016-08-28", "register_device":3},
{"user_id":"u005","register_data":"2016-08-29", "register_device":2},
])
465デフォルトの名無しさん
2021/11/05(金) 07:44:04.24ID:aGM278ZV #コードをラベルに置き換えるクエリ(WHEN (条件式) THEN(条件を満たす場合の値))
c.execute("""
SELECT
user_id,
CASE
WHEN register_device = 1 THEN 'PC'
WHEN register_device = 2 THEN 'SP'
WHEN register_device = 3 THEN ' アプリ '
-- デフォルトの値を指定する場合は ELSE 句を用いる
ELSE ''
END AS device_name
FROM mst_users;
""")
#変更をコミット(保存)する
conn.commit()
#保存したデータを取得するSELECT文を実行する
c.execute('SELECT * FROM "mst_users"')
#クエリの結果はfetchall()メソッドで取得できる。
for row in c.fetchall():
#保存したデータを表示する
print(row)
#コネクションを閉じる
conn.close()
c.execute("""
SELECT
user_id,
CASE
WHEN register_device = 1 THEN 'PC'
WHEN register_device = 2 THEN 'SP'
WHEN register_device = 3 THEN ' アプリ '
-- デフォルトの値を指定する場合は ELSE 句を用いる
ELSE ''
END AS device_name
FROM mst_users;
""")
#変更をコミット(保存)する
conn.commit()
#保存したデータを取得するSELECT文を実行する
c.execute('SELECT * FROM "mst_users"')
#クエリの結果はfetchall()メソッドで取得できる。
for row in c.fetchall():
#保存したデータを表示する
print(row)
#コネクションを閉じる
conn.close()
466デフォルトの名無しさん
2021/11/05(金) 08:12:10.06ID:w3w9SeME467デフォルトの名無しさん
2021/11/05(金) 08:26:19.63ID:UU4b+5ML468デフォルトの名無しさん
2021/11/05(金) 10:52:47.15ID:CgcDsDN+ 会話が不自由なのは頭が不自由なのに起因
469デフォルトの名無しさん
2021/11/05(金) 11:16:58.00ID:WAcm7u05470デフォルトの名無しさん
2021/11/05(金) 12:45:07.02ID:bB3TtMEF >>463
まず、DBってデータを永続化させるためのものだから
コメントにあるような「何回実行してもおなじになるように」(←べき等性、という)
のくだりの処理は一般的ではない
メンテしたいならDBbouer(名前うろ覚え)やA5sqlみたいなツールでメンテしたほうがいい
つぎに、テーブルの扱いだけど
テーブル定義の段階で一意キーを定義すれば
上にあるやうなinsert複数回実行したらデータが多重登録されることを防げる
キーに設定したくないときはinsert条件をつけてあげるといい
テーブル定義、データの登録と済んだらつぎにセレクト文でデータを参照できるようになる
まあ、pythonの勉強というよりDBの勉強したほうがよさそうな感じやね
まず、DBってデータを永続化させるためのものだから
コメントにあるような「何回実行してもおなじになるように」(←べき等性、という)
のくだりの処理は一般的ではない
メンテしたいならDBbouer(名前うろ覚え)やA5sqlみたいなツールでメンテしたほうがいい
つぎに、テーブルの扱いだけど
テーブル定義の段階で一意キーを定義すれば
上にあるやうなinsert複数回実行したらデータが多重登録されることを防げる
キーに設定したくないときはinsert条件をつけてあげるといい
テーブル定義、データの登録と済んだらつぎにセレクト文でデータを参照できるようになる
まあ、pythonの勉強というよりDBの勉強したほうがよさそうな感じやね
471デフォルトの名無しさん
2021/11/05(金) 12:56:19.66ID:bB3TtMEF >>465
ついでにそのスクリプトについていうと
まずinsertのあとコミットかけないとポスグレって参照できなかった気がする
1queryごとにwith句でもつかって接続しなおしたほうが分かりやすいのではないかと
つぎに、コメントに「コードをラベルに書き換える」とあって、そのあとまたセレクトかけてるけど
たぶんこれはあなたがセレクト文の性質を誤解してる
最初のセレクト文で端末コードごとに表示文字を切り替えてるけど
実はこのセレクトで既にデータをとり終えて、表示できる状態になってる
また、セレクトはあくまでデータの参照(写像)であって、データの書き換えは行わない
出力の見かけを変更する処理じたいはそれで正しい
ついでにそのスクリプトについていうと
まずinsertのあとコミットかけないとポスグレって参照できなかった気がする
1queryごとにwith句でもつかって接続しなおしたほうが分かりやすいのではないかと
つぎに、コメントに「コードをラベルに書き換える」とあって、そのあとまたセレクトかけてるけど
たぶんこれはあなたがセレクト文の性質を誤解してる
最初のセレクト文で端末コードごとに表示文字を切り替えてるけど
実はこのセレクトで既にデータをとり終えて、表示できる状態になってる
また、セレクトはあくまでデータの参照(写像)であって、データの書き換えは行わない
出力の見かけを変更する処理じたいはそれで正しい
472デフォルトの名無しさん
2021/11/05(金) 15:54:39.51ID:sm1wg6Gg めちゃいい加減なこと言ってるな
君も一緒にDBの勉強したほうがよさそうな感じやね
君も一緒にDBの勉強したほうがよさそうな感じやね
473デフォルトの名無しさん
2021/11/05(金) 17:46:31.97ID:bBlbvk7u うちMySQLdbつこてる
autocommitあるから便利やで
autocommitあるから便利やで
474デフォルトの名無しさん
2021/11/05(金) 18:18:38.34ID:IMIRRurs >>472
同意
同意
475デフォルトの名無しさん
2021/11/05(金) 18:22:58.00ID:IF3gwUAV いろいろ回答ありがとうございます。
もう少しで帰宅できるので帰ったら試してみます。
もう少しで帰宅できるので帰ったら試してみます。
476デフォルトの名無しさん
2021/11/05(金) 18:27:29.76ID:HmBcWh4U >>472
禿同
禿同
477デフォルトの名無しさん
2021/11/05(金) 18:28:54.22ID:IF3gwUAV プログラミングの勉強始めたのが7月からでDBはいじったことがないので苦戦してます
ビッグデータ分析・活用のためのSQLレシピって本買ってみたけど、pythonからpostgresqlいじる方法が乗ってなくて手探りで検索したりしてる
おすすめの本あれば教えてくだしあ
ビッグデータ分析・活用のためのSQLレシピって本買ってみたけど、pythonからpostgresqlいじる方法が乗ってなくて手探りで検索したりしてる
おすすめの本あれば教えてくだしあ
478デフォルトの名無しさん
2021/11/05(金) 18:37:13.50ID:HmBcWh4U >>477
グラス片手にデータベース設計
グラス片手にデータベース設計
■ このスレッドは過去ログ倉庫に格納されています
