当スレに★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
584デフォルトの名無しさん
2021/11/11(木) 12:27:02.25ID:rdUNi5nM585デフォルトの名無しさん
2021/11/11(木) 12:39:45.52ID:8NRWWnb2 古いバージョンとの互換性がないか、考慮する必要のない場合、
標準で使えるものは使っとくほうが楽
それに対して、別途導入が必要なものは使わないな
標準で使えるものは使っとくほうが楽
それに対して、別途導入が必要なものは使わないな
586デフォルトの名無しさん
2021/11/11(木) 14:03:11.82ID:VFTg6I1W でもループのあとにいきなりelse出て来て
これがどの条件でそこにいくのかすぐに分かるやつおらんのでは?
ループ内でbreakしたあとだよ、とかいえばそのまま信じる人多そう
結局、分岐条件をちゃんと真面目に書いたほうが誤認、誤読を防げてwysiwygみが出る
これがどの条件でそこにいくのかすぐに分かるやつおらんのでは?
ループ内でbreakしたあとだよ、とかいえばそのまま信じる人多そう
結局、分岐条件をちゃんと真面目に書いたほうが誤認、誤読を防げてwysiwygみが出る
587デフォルトの名無しさん
2021/11/11(木) 14:11:28.15ID:1agSgarI windowsのpoetryでキャッシュからパッケージをインストールするとエラーになるやつってまだ修正されてない?
588デフォルトの名無しさん
2021/11/11(木) 18:08:48.51ID:JDtebxVn 辞書に"data"がある限り掘っていき
キー名と値をハイフン文字列で連結する
みたいなことをやりたくて自分で考えてみたのですが
https://ideone.com/o5VIjG
これで一応は出来た(期待する出力)のですが
最適化してもらえないでしょうか
キー名と値をハイフン文字列で連結する
みたいなことをやりたくて自分で考えてみたのですが
https://ideone.com/o5VIjG
これで一応は出来た(期待する出力)のですが
最適化してもらえないでしょうか
589デフォルトの名無しさん
2021/11/11(木) 19:32:31.66ID:M//5twRa590デフォルトの名無しさん
2021/11/11(木) 19:57:35.31ID:R65WwKU7591デフォルトの名無しさん
2021/11/11(木) 20:15:29.73ID:JDtebxVn592デフォルトの名無しさん
2021/11/12(金) 05:11:14.29ID:nOrEz+co593デフォルトの名無しさん
2021/11/12(金) 05:44:51.77ID:69xCA6xu forでelse使えるってしらんだし普通にインデントミスってたのかなと思ってifの所に直しておくかな
594デフォルトの名無しさん
2021/11/12(金) 07:15:43.05ID:Wbl+f+tk595デフォルトの名無しさん
2021/11/12(金) 08:22:54.70ID:bzXu0SPl ややこしくなるだけのものをわざわざ使うことないでしょう
596デフォルトの名無しさん
2021/11/12(金) 09:08:04.32ID:bLCSn2ms 昨日pythonの存在を知ったガチ初心者です
下の解説を参考に国土数値情報を一括DLしようとしましたができません
助力お願いします
https://qiita.com/mits003/items/2c8c77514a09aee99cc0
Win 10
コマンドプロンプトで実行
pyhton 3.9 DL済
ChromeDriver 93.04577 DL済
pip install selenium 実行
cd C:\Users\cucum\mlit-ksj-dl-tool-main
してから
python mlit_ksj_dl.py https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-a.html
を入力すると以下の文がでます
下の解説を参考に国土数値情報を一括DLしようとしましたができません
助力お願いします
https://qiita.com/mits003/items/2c8c77514a09aee99cc0
Win 10
コマンドプロンプトで実行
pyhton 3.9 DL済
ChromeDriver 93.04577 DL済
pip install selenium 実行
cd C:\Users\cucum\mlit-ksj-dl-tool-main
してから
python mlit_ksj_dl.py https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-a.html
を入力すると以下の文がでます
597デフォルトの名無しさん
2021/11/12(金) 09:08:47.83ID:bLCSn2ms C:\Users\cucum\mlit-ksj-dl-tool-main\mlit_ksj_dl.py:50: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
C:\Users\cucum\mlit-ksj-dl-tool-main\mlit_ksj_dl.py:50: DeprecationWarning: use options instead of chrome_options
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
Traceback (most recent call last):
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 951, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1420, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
C:\Users\cucum\mlit-ksj-dl-tool-main\mlit_ksj_dl.py:50: DeprecationWarning: use options instead of chrome_options
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
Traceback (most recent call last):
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
self.process = subprocess.Popen(cmd, env=self.env,
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 951, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1420, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。
598デフォルトの名無しさん
2021/11/12(金) 09:09:00.65ID:bLCSn2ms During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\cucum\mlit-ksj-dl-tool-main\mlit_ksj_dl.py", line 115, in <module>
dl_dir = file_dl(DRIVER_PATH)
File "C:\Users\cucum\mlit-ksj-dl-tool-main\mlit_ksj_dl.py", line 50, in file_dl
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 69, in __init__
super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 90, in __init__
self.service.start()
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 84, in start
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home
Traceback (most recent call last):
File "C:\Users\cucum\mlit-ksj-dl-tool-main\mlit_ksj_dl.py", line 115, in <module>
dl_dir = file_dl(DRIVER_PATH)
File "C:\Users\cucum\mlit-ksj-dl-tool-main\mlit_ksj_dl.py", line 50, in file_dl
driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options)
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 69, in __init__
super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 90, in __init__
self.service.start()
File "C:\Users\cucum\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 84, in start
raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home
599デフォルトの名無しさん
2021/11/12(金) 09:09:56.62ID:bLCSn2ms 長文失礼しました
スレチだったら申し訳ありません
よろしくお願いします
スレチだったら申し訳ありません
よろしくお願いします
600デフォルトの名無しさん
2021/11/12(金) 09:42:28.23ID:+FPwLl69 全然知らんのだが、インストールされてるのがselenium4なら
このあたりが怪しいかも
https://qiita.com/yagaodekawasu/items/5813a8cb4c3d73386e7a
このあたりが怪しいかも
https://qiita.com/yagaodekawasu/items/5813a8cb4c3d73386e7a
601デフォルトの名無しさん
2021/11/12(金) 09:56:07.83ID:M7lyd7nj >>598
>selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
>Please see http://chromedriver.chromium.org/home
chrome driver・chromedriver.exe を置いたフォルダを、
ユーザー環境変数(または、システム環境変数)PATH へ追加すれば?
PowerShell を起動して、
$env:Path.split( ";" )
と入力して、chrome driverを置いたフォルダが、表示されるか確かめる
漏れの場合、C:\BrowserDriver と出力される
漏れは、そこにchrome driverを置いて、Ruby で使っている。
C:\BrowserDriver/chromedriver.exe
>selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
>Please see http://chromedriver.chromium.org/home
chrome driver・chromedriver.exe を置いたフォルダを、
ユーザー環境変数(または、システム環境変数)PATH へ追加すれば?
PowerShell を起動して、
$env:Path.split( ";" )
と入力して、chrome driverを置いたフォルダが、表示されるか確かめる
漏れの場合、C:\BrowserDriver と出力される
漏れは、そこにchrome driverを置いて、Ruby で使っている。
C:\BrowserDriver/chromedriver.exe
602デフォルトの名無しさん
2021/11/12(金) 10:33:02.94ID:zRf7Ym05 データ取得するのが目的ならソースのonclickにパスまんま書いてる
603デフォルトの名無しさん
2021/11/12(金) 10:37:35.81ID:0ShHeix+ >>600
selenium 3.14に変更してみましたが同様の文がでました
selenium 3.14に変更してみましたが同様の文がでました
604デフォルトの名無しさん
2021/11/12(金) 10:38:15.67ID:0ShHeix+ >>601
試してみます
試してみます
605デフォルトの名無しさん
2021/11/12(金) 11:05:42.02ID:0ShHeix+ >>601
ユーザー環境変数とシステム環境変数にPATHを追加しPowerShellでchrome driverを置いたフォルダが表示されるのを確認しました
再度python mlit_ksj_dl.py https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-a.html
を実行しましたが
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
と表示されます
ユーザー環境変数とシステム環境変数にPATHを追加しPowerShellでchrome driverを置いたフォルダが表示されるのを確認しました
再度python mlit_ksj_dl.py https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-a.html
を実行しましたが
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
と表示されます
606デフォルトの名無しさん
2021/11/12(金) 11:07:27.73ID:0ShHeix+607デフォルトの名無しさん
2021/11/12(金) 11:18:39.40ID:+FPwLl69 関係無いけど、昨日Python知った割にはすんなりといろんなことがよくできるな。
もともとLinuxやってた人?
もともとLinuxやってた人?
608デフォルトの名無しさん
2021/11/12(金) 11:21:32.57ID:0ShHeix+609デフォルトの名無しさん
2021/11/12(金) 11:21:59.16ID:du4vJvWd わろたw
そっちの「ソース」をどうやっていじるんだよ。
ドライバのPATH通したなら、
executable_path=DRIVER_PATH,
を削除したらどうだ?
おそらく、上記を設定するとそっちが優先されるだろう。
そっちの「ソース」をどうやっていじるんだよ。
ドライバのPATH通したなら、
executable_path=DRIVER_PATH,
を削除したらどうだ?
おそらく、上記を設定するとそっちが優先されるだろう。
610デフォルトの名無しさん
2021/11/12(金) 11:29:55.18ID:0ShHeix+611デフォルトの名無しさん
2021/11/12(金) 11:35:58.04ID:zRf7Ym05 >>606
そうサイトのHTMLソース
なのでDOM解析してもいいけど、ぶっちゃけ文字列検索で例えば
$ wget https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-a.html
$ grep -oP '/ksj/gml/data/.+zip' KsjTmplt-L03-a.html | wget --base https://nlftp.mlit.go.jp -i -
でOK
スレ的には当初の手法で成功してよかった
そうサイトのHTMLソース
なのでDOM解析してもいいけど、ぶっちゃけ文字列検索で例えば
$ wget https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-L03-a.html
$ grep -oP '/ksj/gml/data/.+zip' KsjTmplt-L03-a.html | wget --base https://nlftp.mlit.go.jp -i -
でOK
スレ的には当初の手法で成功してよかった
612デフォルトの名無しさん
2021/11/12(金) 11:56:23.24ID:+D42agk2 やりたいことがあるのは良いことなので
この調子で色んなことに挑戦しよう
この調子で色んなことに挑戦しよう
613デフォルトの名無しさん
2021/11/12(金) 13:04:57.85ID:iYNtaU8H OSのインストールのときの最後に、
カウンドダウンする表示が出てきて、
あと30秒で再起動する、今すぐのときはボタン押せ表示が出てくる。
ああいうのをpythonでやりたいんだが、参考になるものある?
自分ではWinAPIで似たようなの見つけて
from ctypes import *
windll.user32.MessageBoxTimeoutA(None,"YYY","ABC",4,0,30000)
をやってみたんだが、
カウントダウンしてくれないからちょっと違うと思ってる。
カウンドダウンする表示が出てきて、
あと30秒で再起動する、今すぐのときはボタン押せ表示が出てくる。
ああいうのをpythonでやりたいんだが、参考になるものある?
自分ではWinAPIで似たようなの見つけて
from ctypes import *
windll.user32.MessageBoxTimeoutA(None,"YYY","ABC",4,0,30000)
をやってみたんだが、
カウントダウンしてくれないからちょっと違うと思ってる。
614デフォルトの名無しさん
2021/11/12(金) 14:53:07.55ID:MdQVbi6g try:
__if x.has('A') and use :
____foo()
__else:
____bar()
except ValueError:
__bar()
こういうのって例外クラス作ってexceptでまとめて受けたほうがいいですか?
同じ内容のbar()が散乱するのって気になる?
__if x.has('A') and use :
____foo()
__else:
____bar()
except ValueError:
__bar()
こういうのって例外クラス作ってexceptでまとめて受けたほうがいいですか?
同じ内容のbar()が散乱するのって気になる?
615デフォルトの名無しさん
2021/11/12(金) 15:12:27.59ID:a3j0d+bF >>593-594
無能自慢乙w
無能自慢乙w
616デフォルトの名無しさん
2021/11/12(金) 15:56:02.93ID:GHgBaz6z 自分にしか読めないコード書いて悦に浸るとか20年前のコボラーかよ
617デフォルトの名無しさん
2021/11/12(金) 18:01:39.54ID:FV3v58XB ('A')
618デフォルトの名無しさん
2021/11/12(金) 18:16:04.90ID:1KWt8wEr >>614
bar()の意味合い次第だと思うが
引数含めて全く同じ処理をするんならelse句でraiseしてまとめてしまったほうが理解しやすいと思う
それよりどこで発生する例外をexceptで受けてるのかが曖昧なのが気になる
x.has()なのかuse()なのかfoo()なのか
bar()でもValueError発生する可能性があるのかないのかみたいな
bar()の意味合い次第だと思うが
引数含めて全く同じ処理をするんならelse句でraiseしてまとめてしまったほうが理解しやすいと思う
それよりどこで発生する例外をexceptで受けてるのかが曖昧なのが気になる
x.has()なのかuse()なのかfoo()なのか
bar()でもValueError発生する可能性があるのかないのかみたいな
619デフォルトの名無しさん
2021/11/12(金) 18:29:01.39ID:JnXYuZWY from ctypes import *
t = 30000
while(t -= 1):
windll.user32.MessageBoxW(None,"YYY","ABC",0)
t = 30000
while(t -= 1):
windll.user32.MessageBoxW(None,"YYY","ABC",0)
620デフォルトの名無しさん
2021/11/12(金) 18:55:33.33ID:a3j0d+bF621デフォルトの名無しさん
2021/11/12(金) 19:30:16.12ID:xRtlJ9/N こういうのを見るたび「Zen of Python」ってなんだったんだろうなって思ってしまうw
622デフォルトの名無しさん
2021/11/12(金) 19:54:46.68ID:JnXYuZWY >>621
Zenは原理主義じゃないから
Zenは原理主義じゃないから
623デフォルトの名無しさん
2021/11/12(金) 20:27:32.37ID:MdQVbi6g >>618
あーそうかー
has部分だけなんす、tryするの。tryは短くないとですよね
if use :
__try:
____x.has('A'):
________foo()
__except ValueError:
____use =False
if not use:
__var()
んーーーー
あーそうかー
has部分だけなんす、tryするの。tryは短くないとですよね
if use :
__try:
____x.has('A'):
________foo()
__except ValueError:
____use =False
if not use:
__var()
んーーーー
624デフォルトの名無しさん
2021/11/12(金) 20:32:02.95ID:+D42agk2 ('A')が(´A`)に見えた
625デフォルトの名無しさん
2021/11/12(金) 21:16:34.84ID:1KWt8wEr >>623
has()が例外投げる代わりにFalseを返せばいいんでは?
has()が例外投げる代わりにFalseを返せばいいんでは?
626デフォルトの名無しさん
2021/11/12(金) 21:25:29.92ID:1KWt8wEr loopのelse句はGuidoも後悔してる機能
https://mail.python.org/pipermail/python-ideas/2009-October/006157.html
https://mail.python.org/pipermail/python-ideas/2009-October/006157.html
627デフォルトの名無しさん
2021/11/13(土) 00:44:08.28ID:fE0qo4YR >>621
グイドは禅を守る為に戦ってるんだよ
グイドは禅を守る為に戦ってるんだよ
628デフォルトの名無しさん
2021/11/13(土) 01:57:43.67ID:PnBDGE+q そりゃ後悔するわな
629デフォルトの名無しさん
2021/11/13(土) 04:38:52.17ID:qYaZF+ZS Web Designing 2021年12月号
>入門〜上級まで本気で勉強したい人必携。Pythonの利点からWebビジネスで活きる仕組みまで丁寧に解説!
>入門〜上級まで本気で勉強したい人必携。Pythonの利点からWebビジネスで活きる仕組みまで丁寧に解説!
630デフォルトの名無しさん
2021/11/13(土) 17:33:14.40ID:kgYXWGHf sqlのスレのほうがいいのか迷いましたがこちらで。
psycopg2で重複させずにinsertをする方法を知りたいです。
import psycopg2
#データベースにいれるurlのリスト
url_list1 = ['url1', 'url2', 'url3', 'url4', 'url5',]
url_list2 = ['url1', 'url2', 'url6', 'url7', 'url8',]
# PostgreSQL Server へ接続してカーソルを取得
conn = psycopg2.connect('host=localhost port=5432 dbname=urlman user=urlman password=urlmaniscool')
c = conn.cursor()
#urlを保存するテーブルの作成
c.execute("""
CREATE TABLE url_table(
"url_name" text,
"count" integer default 0
)
""")
psycopg2で重複させずにinsertをする方法を知りたいです。
import psycopg2
#データベースにいれるurlのリスト
url_list1 = ['url1', 'url2', 'url3', 'url4', 'url5',]
url_list2 = ['url1', 'url2', 'url6', 'url7', 'url8',]
# PostgreSQL Server へ接続してカーソルを取得
conn = psycopg2.connect('host=localhost port=5432 dbname=urlman user=urlman password=urlmaniscool')
c = conn.cursor()
#urlを保存するテーブルの作成
c.execute("""
CREATE TABLE url_table(
"url_name" text,
"count" integer default 0
)
""")
631デフォルトの名無しさん
2021/11/13(土) 17:33:37.48ID:kgYXWGHf #url_list1のデータを挿入
for url in url_list1:
c.execute('INSERT INTO url_table (url_name) VALUES(%s)',[url])
conn.commit()
#入ったか確認
c.execute('SELECT url_name FROM url_table WHERE count=0')
urllist = [row[0] for row in c.fetchall()]
print(urllist)
for url in url_list1:
c.execute('INSERT INTO url_table (url_name) VALUES(%s)',[url])
conn.commit()
#入ったか確認
c.execute('SELECT url_name FROM url_table WHERE count=0')
urllist = [row[0] for row in c.fetchall()]
print(urllist)
632デフォルトの名無しさん
2021/11/13(土) 17:33:55.87ID:kgYXWGHf #新たに取得したurlのうち重複してないurlを挿入
#これのやりかたがよくわかりません
for url in url_list2:
c.execute('INSERT INTO url_table (url_name) VALUES(%s)',[url])
conn.commit()
#入ったか確認
c.execute('SELECT url_name FROM url_table WHERE count=0')
urllist = [row[0] for row in c.fetchall()]
print(urllist)
#コネクションを閉じる
conn.close()
#これのやりかたがよくわかりません
for url in url_list2:
c.execute('INSERT INTO url_table (url_name) VALUES(%s)',[url])
conn.commit()
#入ったか確認
c.execute('SELECT url_name FROM url_table WHERE count=0')
urllist = [row[0] for row in c.fetchall()]
print(urllist)
#コネクションを閉じる
conn.close()
633デフォルトの名無しさん
2021/11/13(土) 17:36:19.84ID:kgYXWGHf 上記でprint(urllist)の結果を['url1', 'url2', 'url3', 'url4', 'url5','url6', 'url7', 'url8']にしたいのですが、
['url1', 'url2', 'url3', 'url4', 'url5','url1', 'url2', 'url6', 'url7', 'url8']になってしまいます。
['url1', 'url2', 'url3', 'url4', 'url5','url1', 'url2', 'url6', 'url7', 'url8']になってしまいます。
634デフォルトの名無しさん
2021/11/13(土) 17:56:44.89ID:vJfZgOKN 入ったかどうかを select で確認してるんだから
入ってたら除外すればいい
入ってたら除外すればいい
635デフォルトの名無しさん
2021/11/13(土) 18:09:47.53ID:kgYXWGHf636デフォルトの名無しさん
2021/11/13(土) 18:13:41.77ID:Mehg38vB url_nameを主キーにすればいいんじゃないの
637デフォルトの名無しさん
2021/11/13(土) 18:18:47.95ID:x1CN7sQN638デフォルトの名無しさん
2021/11/13(土) 18:21:14.00ID:6FXvjqIK pythonロジックでセレクトかけてインサートするかどうか決めたり或いは
インサート文にwhere条件入れてもいい
ただ設計的なはなしでいうなら、最初から重複すべきではないなら
テーブル定義の重複NGにキー制約かけたほうがベスト
その際、インサートで主キーだぶるとdbms側で例外吐くので、例外処理のpythonロジックを追加する必要がある
規模が大きいシステムだと、最後のやり方をまず一番最初に考慮する必要がある
上二つのやり方は考え方としてはほぼ一緒で
実装としてSQL文として一筆書き出来ますよと言うはなしでしかない
範囲が限られた業務ロジックのなかでなら有効に使える
インサート文にwhere条件入れてもいい
ただ設計的なはなしでいうなら、最初から重複すべきではないなら
テーブル定義の重複NGにキー制約かけたほうがベスト
その際、インサートで主キーだぶるとdbms側で例外吐くので、例外処理のpythonロジックを追加する必要がある
規模が大きいシステムだと、最後のやり方をまず一番最初に考慮する必要がある
上二つのやり方は考え方としてはほぼ一緒で
実装としてSQL文として一筆書き出来ますよと言うはなしでしかない
範囲が限られた業務ロジックのなかでなら有効に使える
639デフォルトの名無しさん
2021/11/13(土) 18:22:14.25ID:pRVx8AyR 1件ずつexecuteせずまとめてinsertしたほうがいいよ
640デフォルトの名無しさん
2021/11/13(土) 18:27:23.32ID:6FXvjqIK641デフォルトの名無しさん
2021/11/13(土) 18:42:45.91ID:kgYXWGHf >>637の内容で入れてみます!!!
データベース勉強しはじめでよくわかってなくて申し訳ない。
upsertは調べてみたのですが、重複した場合、内容を更新するとなっていてやりたいことと違うのかと思いました
データベース勉強しはじめでよくわかってなくて申し訳ない。
upsertは調べてみたのですが、重複した場合、内容を更新するとなっていてやりたいことと違うのかと思いました
642デフォルトの名無しさん
2021/11/13(土) 18:46:41.57ID:6FXvjqIK >>641
マージ文でググればでてくるけど
じつはアレ、アップデート文書かなくてもちゃんと期待どおりに動くぞw
インサートやって、出来なければスルーしたいならOR UPDATEの部分だけ書かなければいい
マージ文でググればでてくるけど
じつはアレ、アップデート文書かなくてもちゃんと期待どおりに動くぞw
インサートやって、出来なければスルーしたいならOR UPDATEの部分だけ書かなければいい
643デフォルトの名無しさん
2021/11/13(土) 18:55:43.88ID:kgYXWGHf >>638
最初は、pythonで重複の比較して重複してないやつを入れることも考えたんです。
c.execute('SELECT url_name FROM url_table WHERE count=0')
urllist = [row[0] for row in c.fetchall()]
で持ってきたurllistをurl_list2と比較して重複してないやつを入れるみたいな
url_list2 = set(url_list2)-set(urllist)とかで?
でもせっかくデータベースの勉強してるのでそっちでやってみたいなって感じです
>>640
すまん、話してることが難しくてよくわからない
最初は、pythonで重複の比較して重複してないやつを入れることも考えたんです。
c.execute('SELECT url_name FROM url_table WHERE count=0')
urllist = [row[0] for row in c.fetchall()]
で持ってきたurllistをurl_list2と比較して重複してないやつを入れるみたいな
url_list2 = set(url_list2)-set(urllist)とかで?
でもせっかくデータベースの勉強してるのでそっちでやってみたいなって感じです
>>640
すまん、話してることが難しくてよくわからない
644デフォルトの名無しさん
2021/11/13(土) 18:58:26.95ID:kgYXWGHf ぽまいらなんでこんなに詳しいんだ
挫折しながらもpythonちょっとできるようになってきて、
csv辞めてデータベースに入れてみたいってなって、
postgresqlの勉強始めたら挫折して、挫折しかしてねえぞ俺
挫折しながらもpythonちょっとできるようになってきて、
csv辞めてデータベースに入れてみたいってなって、
postgresqlの勉強始めたら挫折して、挫折しかしてねえぞ俺
645デフォルトの名無しさん
2021/11/13(土) 18:59:24.51ID:kgYXWGHf >>642
これから637と642どっちも試してみるです!!
これから637と642どっちも試してみるです!!
646デフォルトの名無しさん
2021/11/13(土) 19:00:45.55ID:x1CN7sQN >>641
> upsertは調べてみたのですが、重複した場合、内容を更新するとなっていてやりたいことと違うのかと思いました
upsertやmergeはDBMS毎に書き方違うから調べにくいよね
まあおいおい調べていけばいいと思うよ
あと、例外出してPython側で処理するとかPostgreSQLにないマージ文とか言ってるアホは無視でいい
> upsertは調べてみたのですが、重複した場合、内容を更新するとなっていてやりたいことと違うのかと思いました
upsertやmergeはDBMS毎に書き方違うから調べにくいよね
まあおいおい調べていけばいいと思うよ
あと、例外出してPython側で処理するとかPostgreSQLにないマージ文とか言ってるアホは無視でいい
647デフォルトの名無しさん
2021/11/13(土) 19:08:25.74ID:6FXvjqIK すまんw
postgresもどうせ普通にANSI規格やろと思ったら未実装やったんかい
postgresもどうせ普通にANSI規格やろと思ったら未実装やったんかい
648デフォルトの名無しさん
2021/11/13(土) 19:16:23.51ID:kgYXWGHf 637のやりかたでできたぞです!
ありがとう。
642も試してみる
ありがとう。
642も試してみる
649デフォルトの名無しさん
2021/11/13(土) 19:27:37.20ID:6FXvjqIK650デフォルトの名無しさん
2021/11/13(土) 19:54:50.55ID:kgYXWGHf >>646,647
マージ文?ないってレスに今気づいたありがとう。
マージ文?ないってレスに今気づいたありがとう。
651デフォルトの名無しさん
2021/11/13(土) 21:24:55.56ID:wUFaz/ce652デフォルトの名無しさん
2021/11/13(土) 21:58:49.17ID:diWAL6lC >>651
import functools
d={"a":{"b":{"c":{"d":111}}}}
ary=["a","b","c","d"]
print(functools.reduce(lambda d, k: d[k], ary, d))
import functools
d={"a":{"b":{"c":{"d":111}}}}
ary=["a","b","c","d"]
print(functools.reduce(lambda d, k: d[k], ary, d))
653デフォルトの名無しさん
2021/11/13(土) 23:36:54.00ID:wUFaz/ce654デフォルトの名無しさん
2021/11/14(日) 00:17:07.01ID:MXTEWU7A 静的にキーを定義してる時点で動的とは言えないのでは
655デフォルトの名無しさん
2021/11/14(日) 01:36:39.78ID:ZInZl5Ie656デフォルトの名無しさん
2021/11/14(日) 01:47:41.70ID:MXTEWU7A >>> d={"a":{"b":{"c":{"d":111}}}}
>>> def get_value(dd): return dd if isinstance(dd, int) else get_value(list(dd.values())[0])
>>> print(get_value(d))
111
lambda使って頑張ればいける?無理かな
>>> def get_value(dd): return dd if isinstance(dd, int) else get_value(list(dd.values())[0])
>>> print(get_value(d))
111
lambda使って頑張ればいける?無理かな
657デフォルトの名無しさん
2021/11/14(日) 02:13:49.47658デフォルトの名無しさん
2021/11/14(日) 04:27:10.93ID:PiYGiFgV >>644
挫折と言うのは努力した人がするもんだ
挫折と言うのは努力した人がするもんだ
659デフォルトの名無しさん
2021/11/14(日) 08:05:21.74ID:8oLu5/jW660デフォルトの名無しさん
2021/11/14(日) 13:36:33.18ID:E00roTgy そもそも日本語が不自由っぽくて
何をしたいのかが良く判らん
何をしたいのかが良く判らん
661デフォルトの名無しさん
2021/11/14(日) 13:40:46.75ID:E00roTgy と思ったが画像観てなかったわω
関数名 search_tree とか search_node の方が良いんじゃね
関数名 search_tree とか search_node の方が良いんじゃね
662デフォルトの名無しさん
2021/11/14(日) 14:59:17.47 相手の日本語を疑う前にまず抽象化して考えた方が良いと思うわ
質問者の質問には、期待部分とコード部分が分かれてるわけで。
コード部分だけみて文字通りコードだけみて
「何したいかわからん」っていう人いるけど
全部同じ人だとしたら、ずっとネタでやってんのかと思ってたけど
返しがガチアスペっぽいんだよなぁ・・
例えば if True:とか書くと
「Trueだと当たり前じゃん、何がしたいかわからん」
みたいな返しの人いるじゃん
これまじでネタでやってんのかと思ってたけど
安定して登場してるんでどうもネタでやってないっぽい
質問者の質問には、期待部分とコード部分が分かれてるわけで。
コード部分だけみて文字通りコードだけみて
「何したいかわからん」っていう人いるけど
全部同じ人だとしたら、ずっとネタでやってんのかと思ってたけど
返しがガチアスペっぽいんだよなぁ・・
例えば if True:とか書くと
「Trueだと当たり前じゃん、何がしたいかわからん」
みたいな返しの人いるじゃん
これまじでネタでやってんのかと思ってたけど
安定して登場してるんでどうもネタでやってないっぽい
663デフォルトの名無しさん
2021/11/14(日) 15:01:10.51ID:ckxtWecQ 画像?
人の日本語にケチつけるレベルじゃないだろw
人の日本語にケチつけるレベルじゃないだろw
664デフォルトの名無しさん
2021/11/14(日) 15:06:35.08ID:L6aMQe6P665デフォルトの名無しさん
2021/11/14(日) 15:38:37.79ID:vfrWY536 それあるわ
苦労して一行にまとめたコードだが、
何をしているのかを解説するコメントが10行くらい必要になって
これやらない方がよかったなって経験がある
苦労して一行にまとめたコードだが、
何をしているのかを解説するコメントが10行くらい必要になって
これやらない方がよかったなって経験がある
666デフォルトの名無しさん
2021/11/14(日) 15:41:51.67ID:mFG9NQD5 >>644
YouTube で有名な、雑食系エンジニア・KENTA のサロンの、Ruby on Rails 初心者用コースでは、
Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース(DB)
バックエンド技術者の大前提として、基本情報処理資格も必須。
DBも、第3正規形まで入る
さらに、データベース技術者資格・ミックの本も読んだ方がよい
YouTube で有名な、雑食系エンジニア・KENTA のサロンの、Ruby on Rails 初心者用コースでは、
Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース(DB)
バックエンド技術者の大前提として、基本情報処理資格も必須。
DBも、第3正規形まで入る
さらに、データベース技術者資格・ミックの本も読んだ方がよい
667デフォルトの名無しさん
2021/11/14(日) 16:58:12.67ID:tkHjD9h1 >>657
例が悪い
例が悪い
668デフォルトの名無しさん
2021/11/14(日) 18:18:34.52ID:XvRnuZG1 質問は割とまともでも
最初に付いたレスが頓珍漢だと
頓珍漢な質問者だということにされる好例
最初に付いたレスが頓珍漢だと
頓珍漢な質問者だということにされる好例
669デフォルトの名無しさん
2021/11/14(日) 18:40:23.82ID:+PJrsOCi ただ絡みてえだけのバカが数人常駐しとるでな
670デフォルトの名無しさん
2021/11/14(日) 19:22:31.60 >>667
コード例は関係ない
>>651質問者の期待は
>辞書のキー名から動的に値を取得したい
であって
「キー名a,b,c,d順の最期の値を取得したい」
ではない
質問者の期待とコードを見た上で抽象化すれば
「あー、search_dict()にselectors(キー名の入ったリスト)入れて検索したいのね」
「dやaryが他の場合も対応しつつ」
ってのが一般回答者なら意識しなくてもわかる
「コードが{"a":{"b":{"c":{"d":111}}}}ってなってる!!
しかも出力が111だ!
さらには["a","b","c","d"] と静的に定義されてる!!
いやいやそもそもa→b→c→dの順で検索するコード書けばいいじゃねえか!!」
とはならんだろ・・
だからアスペっぽいなぁと感じる所以
で、ネタならただの荒らしなんでそれはそれでいいが
ネタじゃないっぽいガチアスペっぽいやつがいるんだよな
コード例は関係ない
>>651質問者の期待は
>辞書のキー名から動的に値を取得したい
であって
「キー名a,b,c,d順の最期の値を取得したい」
ではない
質問者の期待とコードを見た上で抽象化すれば
「あー、search_dict()にselectors(キー名の入ったリスト)入れて検索したいのね」
「dやaryが他の場合も対応しつつ」
ってのが一般回答者なら意識しなくてもわかる
「コードが{"a":{"b":{"c":{"d":111}}}}ってなってる!!
しかも出力が111だ!
さらには["a","b","c","d"] と静的に定義されてる!!
いやいやそもそもa→b→c→dの順で検索するコード書けばいいじゃねえか!!」
とはならんだろ・・
だからアスペっぽいなぁと感じる所以
で、ネタならただの荒らしなんでそれはそれでいいが
ネタじゃないっぽいガチアスペっぽいやつがいるんだよな
671デフォルトの名無しさん
2021/11/14(日) 19:31:47.93ID:6/4ZgoB5 教えてください。
開いているメモ帳などに、言葉を複数回入力したいのですが、
pyperclip.copy(text) #textは変数
でクリップボートにコピーしたものを、メモ帳に貼り付けるため
hwnd = win32gui.FindWindow(None, "〇〇 - メモ帳") # "〇〇 - メモ帳"は例えです
win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,0,0,0,0,win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)
で、常に最前面にした状態で、
pyperclip.paste()
を実行しても貼り付けできません。
pyautogui.typewrite(text)
でも、メモ帳をアクティブにすれば、日本語はダメですが英語だと貼り付けできます。
@メモ帳をアクティブにする方法 PID指定でもいいです
A日本語を貼り付け可能にする方法
よろしくお願いいたします。
開いているメモ帳などに、言葉を複数回入力したいのですが、
pyperclip.copy(text) #textは変数
でクリップボートにコピーしたものを、メモ帳に貼り付けるため
hwnd = win32gui.FindWindow(None, "〇〇 - メモ帳") # "〇〇 - メモ帳"は例えです
win32gui.SetWindowPos(hwnd,win32con.HWND_TOPMOST,0,0,0,0,win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)
で、常に最前面にした状態で、
pyperclip.paste()
を実行しても貼り付けできません。
pyautogui.typewrite(text)
でも、メモ帳をアクティブにすれば、日本語はダメですが英語だと貼り付けできます。
@メモ帳をアクティブにする方法 PID指定でもいいです
A日本語を貼り付け可能にする方法
よろしくお願いいたします。
672デフォルトの名無しさん
2021/11/14(日) 19:41:02.30ID:r+uJUw0M 最前面にあるのとフォーカスがあるのは一緒じゃない
673デフォルトの名無しさん
2021/11/14(日) 19:58:23.61ID:qsoauoys コードが全然わからず困ってます。
有料のサブスクで勉強しているんですが、説明が分からなくて困ってます。
def から何をしているのかさっぱりわかりません。
DataFrame の処理の問題です。
コメントの15文字までを切り出して列(SlicedComment列)に格納する処理をSeries.apply()を使って実行します。
まず実行したい関数(ここでは、get_sliced_str関数)を実装します。
その後、Series.apply()に引数として実装した関数を渡すと、Seriesの各データが実装した関数の引数として渡された結果をシリーズとして返します。
# 前回のプログラムの読込
%run 2.ipynb
def get_sliced_str(x):
return x[:15]
# 関数を使って作成
df['SlicedComment'] = df['Comment'].apply(get_sliced_str)
df
# strアクセサを使って作成
df['SlicedComment'] = df['Comment'].str[:15]
df
有料のサブスクで勉強しているんですが、説明が分からなくて困ってます。
def から何をしているのかさっぱりわかりません。
DataFrame の処理の問題です。
コメントの15文字までを切り出して列(SlicedComment列)に格納する処理をSeries.apply()を使って実行します。
まず実行したい関数(ここでは、get_sliced_str関数)を実装します。
その後、Series.apply()に引数として実装した関数を渡すと、Seriesの各データが実装した関数の引数として渡された結果をシリーズとして返します。
# 前回のプログラムの読込
%run 2.ipynb
def get_sliced_str(x):
return x[:15]
# 関数を使って作成
df['SlicedComment'] = df['Comment'].apply(get_sliced_str)
df
# strアクセサを使って作成
df['SlicedComment'] = df['Comment'].str[:15]
df
674デフォルトの名無しさん
2021/11/14(日) 20:19:49.33ID:y/dqGNjn コードが意訳でなくコピペなら引用の範疇かが気になるし有料ならそっちで聞いた方がよくない?
前後の流れもあるだろうし
前後の流れもあるだろうし
675デフォルトの名無しさん
2021/11/14(日) 20:23:34.90ID:sz2Sy1tN そもそもpyperclip.paste()とpyperclip.copy()はクリップボードの中身をどうこうするために存在するのであって
なんかの画面に貼り付けるために存在するのではない
結論としてはpyautogui.hotkey()にctrlとv渡せ
なんかの画面に貼り付けるために存在するのではない
結論としてはpyautogui.hotkey()にctrlとv渡せ
676デフォルトの名無しさん
2021/11/14(日) 20:26:13.01ID:6/4ZgoB5 >>672さん
ありがとうございます。
理解しました。そうですよね。よく考えれば当然でした。
Aの貼り付けは、
pyautogui.hotkey('ctrl', 'v')
で解決しました。
で、メモ帳にフォーカスをあてるには、バーチャルマウスでクリック等はあったのですが、
直接指定してフォーカスする方法があればお教えください。
ありがとうございます。
理解しました。そうですよね。よく考えれば当然でした。
Aの貼り付けは、
pyautogui.hotkey('ctrl', 'v')
で解決しました。
で、メモ帳にフォーカスをあてるには、バーチャルマウスでクリック等はあったのですが、
直接指定してフォーカスする方法があればお教えください。
677デフォルトの名無しさん
2021/11/14(日) 20:51:40.87ID:sz2Sy1tN タスクバー上の配置を固定しておいてwin+数字キー
678デフォルトの名無しさん
2021/11/14(日) 21:23:31.50ID:qmSPgrdk >>673
説明の何がわからないのかもう少し細かく考えてみては?
defが何かわからない?
「コメントの15文字までを切り出して列に格納する」という日本語の意味がわからない?
スライスやSlicedの意味がわからない?
x[:15]が何をしてるかわからない?
シリーズが何かわからない?
「Series.apply()に引数として関数を渡す」という日本語の意味がわからない?
などなど
説明の何がわからないのかもう少し細かく考えてみては?
defが何かわからない?
「コメントの15文字までを切り出して列に格納する」という日本語の意味がわからない?
スライスやSlicedの意味がわからない?
x[:15]が何をしてるかわからない?
シリーズが何かわからない?
「Series.apply()に引数として関数を渡す」という日本語の意味がわからない?
などなど
679デフォルトの名無しさん
2021/11/14(日) 21:58:02.31ID:u3eAdyh4 >>651
1行じゃ無いけど再帰は要らなくね?
def search_dict(target,selectors):
c = target
for k in selectors:
c = c[k]
return c
1行じゃ無いけど再帰は要らなくね?
def search_dict(target,selectors):
c = target
for k in selectors:
c = c[k]
return c
680デフォルトの名無しさん
2021/11/14(日) 22:31:49.77ID:bHC3qkkE コードゴルフしてるんで一行でお願いします
681デフォルトの名無しさん
2021/11/15(月) 01:36:18.56ID:5MYJc3th >>678
アドバイスありがとうございます。
シリーズがよく分かっていなかったのと、apllyもよく分かっていませんでした。ノートに書きながら色々実行したら何となくわかりましたが、x[:15]がよく分かりません。
コメントを渡して最初の15文字をなぜ切り取れるんでしょうか
アドバイスありがとうございます。
シリーズがよく分かっていなかったのと、apllyもよく分かっていませんでした。ノートに書きながら色々実行したら何となくわかりましたが、x[:15]がよく分かりません。
コメントを渡して最初の15文字をなぜ切り取れるんでしょうか
682デフォルトの名無しさん
2021/11/15(月) 02:57:55.17ID:/1nodzje >>681
お前はまず初心者向けの本を一冊読んでから出直せ
お前はまず初心者向けの本を一冊読んでから出直せ
683デフォルトの名無しさん
2021/11/15(月) 03:02:41.97ID:r/fnyP+y まあ超初心者用とはいえ論外だわ
クジラ飛行机の入門書でも読めや
あれプログラムしたこと無い人がスタートラインに立てるようになるから
クジラ飛行机の入門書でも読めや
あれプログラムしたこと無い人がスタートラインに立てるようになるから
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 【テレビ】家入レオ 高校時代は親友なし 唯一の仲間が現在は超人気女優 「ずっとお互いに本を読んで」 [湛然★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 【実況】博衣こよりのえちえち朝活🧪
- 【高市悲報】日本人のTikTokアカウントが続々収益化剥奪中!!乞食どもざまああああああああwwwwwww [394917828]
- 中国父さん、ジャップに事前通知した音声公開😄騒いでたのはジャップだけだった😭 [929293504]
- 中国、tiktok収益化剥奪の報復開始www
- 【悲報】婚活女子(38)「婚活パーティーに行ったら婚活男性の大部分が年収350万円身長165cm未満のコミュ障子供部屋おじさんで絶望してる… [257926174]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwww
