๐๏ธ์ํํธ์จ์ด/๐ปpython
[Python] TypeError: 'NoneType' object is not iterable ์ค๋ฅ ํด๊ฒฐ ๋ฐฉ๋ฒ
'TypeError: 'NoneType' object is not iterable'์๋ฌ๊ฐ ํ์ด์ฌ์์ ๋ฐ์ํ๋ค๋ฉด, ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ๊ฐ์ฒด๋ฅผ ์ป์ด์ค๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ ์๋ฌ๋ค. ๋ ๊ฐ์ง๋ก ํด๊ฒฐํ ์ ์๋ค. ํฌ๋กค๋ง์ ํ๊ณ ์๋ค๋ฉด, ์ ๋นํ ์๊ฐ์ ์ฃผ๋ ๊ฒ(time.sleep() ์ ํตํด ํ์ฌ ํ์ด์ง์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋๋ก ์ ๊ฐ์ ธ์ค๋ ์์ ์ ์๋ฃํ๋ ๊ฒ) ๊ณผ ๋ง์ง๋ง์ผ๋ก try except ๋ฌธ์ ํตํด ๊ฐ์ ๊ฐ์ ธ์ฌ๋, ๊ตฌํ์ง ๋ชปํด๋ ์๋ฌ๊ฐ ๋์ง ์๊ฒํด์ผํ๋ค. ๋
![[python] ํ์ด์ pd.concat](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGYKVw%2Fbtrl1XioE68%2FIySXUGoS4FB5DaqCUFB8q1%2Fimg.png)
[python] ํ์ด์ pd.concat
ํ์ด์ ๋ฐ์ดํฐ ํ๋ ์ ํฌ๋กค๋งํ๋ฉด์, ์ ์ฉํ๊ณ ํ์ํ๋ ํจ์๋ฅผ ์ด์ผ๊ธฐํ๋ฉด, ํ๋ค์ค ๋ชจ๋์์๋ ํนํ๋ ๋ฐ์ดํฐํ๋ ์์ ๋ง๋ค๊ณ , ์ ์ฅํ๊ณ , ํฉ์น๊ณ ๋ ๊ฒ์ ๋ง์ด ํ์๋๋ฐ, ๋ฌด์๋ณด๋ค ํฉ์น๋ ์์ ์ด ๋ง์๋ค. ์๋ํ๋ฉด ๊ฐ ํ์ด์ง๋ง๋ค ํ์ฑํ ๋ฐ์ดํฐ๋ค์ ํ๋์ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ง๋ค์ด๋๊ณ , ๊ทธ๋๊ทธ๋๋ง๋ค ๋ฐ์ดํฐํ๋ ์์ ํ์ฑํ์ฌ, ๊ธฐ์กด์ ํ์ ๊ณ์ํด์ ํฉ์น๋ ๋ฐฉ์์ผ๋ก ํ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ธฐ์กด์ ๋ฆฌ์คํธ์๋ค๊ฐ ๊พธ์คํ append๋ฅผ ํตํด ๋ฃ์ด์ ํ๋ฒ์ ํ ์๋ ์์ง๋ง, ๊ทธ๋ ๊ฒ ๋๋ฉด, ๋จ์ ์ ๋ง์ฝ์ ์ค๊ฐ์ ์์ ์ด ๋ฉ์ถ๊ฑฐ๋ ํ๋ฉด, ํด๋น ๋ฆฌ์คํธ์ ๊ฐ์ ์ ์ฅ๋์ด ์์ง๋ง, ์ผ๋ง๋ ์ ์ฅ๋์ด ์๋์ง, ๊ธธ์ด๋ ๋ง๋์ง์ ๋ํ ํ์ธ์์ ์ด ์ด๋ ต๊ณ , ์ฌ์ค์ ๋ค์ ์์ํ์ฌ์ผํ ์๋ ์๋ค๊ณ ํ๋จํ๋ค. ๊ทธ๋์ ํ๋ค์ค pandas ์ pd.concat() ๋ฅผ ๋ง์ด..
[python] ํฌ๋กค๋ง implicit wait vs time.sleep
ํฌ๋กค๋ง ํ๋ค๋ณด๋ฉด, ์ ์ ์ฝ๋ ์คํ์ ๋ฉ์ถฐ์ผ ํ ํ์๊ฐ ์๊ธด๋ค. ์ฃผ๋ ์์ธ์ 2๊ฐ์ง๊ฐ ์์ ๊ฒ ๊ฐ์๋ฐ, ์ฒซ๋ฒ์จฐ, ์ฝ๋์ ์คํ์๋๊ฐ ๋๋ฌด ๋นจ๋ผ, ์น ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์ ์ก์ด ๋๋ ค์, ์ค์ ์ฌ์ดํธ๊ฐ ์ด๋ฆฌ์ง๋ ์์๋๋ฐ ์ฝ๋๊ฐ ๋จผ์ ์คํ๋๋ ๊ฒฝ์ฐ์ด๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๊ฐ ์นํ๊ฒ ๋๋ค. ๋๋ฒ์งธ, ๋ฐ๋ณต์ ์ธ ํฌ๋กค๋ง ์์ ์ ์๋ฒ์ ๋ง์ ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๋ ๊ฒ์ ์ ๋ฐํ๋ ํฐ ์์ธ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก, ์์นซํ๋ฉด ์ฐ๋ฆฌ์ ip๊ฐ ์ ๊น ์ ์ง ๋นํ ์๋ ์๋ค. ํฌ๋กค๋ง ์์ ์ ์งํํ๋ค๊ฐ ๊ฐ์๊ธฐ ip๊ฐ ๋งํ๋ฒ๋ฆฌ๋ฉด, ์ด๋ณด๋ค ์ฌํ ๊ฒฝ์ฐ๋ ์์ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ ์ ํ ์ฌ์ด๊ฐ์ ๋ฏธํ์ด ํ์ํ ๊ฒ์ด๋ค. ๋ณธ๊ฒฉ์ ์ผ๋ก time.sleep ๋ฌธ๊ณผ implicit wait ๋ฌธ์ ๋น๊ตํ๋ฉด, ํ์คํ time.sleep ๋ณด๋ค implicit wait ์ด ์ข์ ๊ฒ ๊ฐ..
![[python] ํฌ๋กค๋ง์ ํ์ํ ํจ์ : filter, lambda, map](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKd5eT%2Fbtrl57ju2CS%2FkPJdRWJCVvKDyZ4szLB3P0%2Fimg.png)
[python] ํฌ๋กค๋ง์ ํ์ํ ํจ์ : filter, lambda, map
๋ฐ์ดํฐํ๋ ์์ ๋ง๋ค๊ฒฝ์ฐ, ํ์ ์๊ฐ ์๋ก ๋ง์์ผ ์ํ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์๋ค. ํ์ง๋ง, ์๊ทผํ ํ์ฑํ๋ค๋ณด๋ฉด, ๊ณต๋ฐฑ์ด ์์ด์, ๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ ๋ด๊ฐ ์์ํ ์ซ์์ธ 30์ด ์๋ 60์ด ๊ณ์ ๋์๋๋ฐ, ์ด๋ด๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก filter ๋ผ๋ ํจ์๊ฐ ์๋ค. ๊ธฐ๋ณธ ๋ด์ฅ ํจ์์ฌ์ ๋ฐ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ ํฐ ์ฅ์ ์ด ์๋ค. ์ฐธ๊ณ ๋ก lambda ์ map๋ ๋ฐ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค filter ['', '๊ธฐ์ K5 3์ธ๋ 2.0 LPI ๋ ํฐ์นด ์คํ ๋ค๋', '', 'ํ๋ ๋ ๋ด ๊ทธ๋์ 3.0 LPi ๋ ํฐ์นด ํ๋ฆฌ๋ฏธ์', '', '๊ธฐ์ K5 3์ธ๋ 1.6 ๊ฐ์๋ฆฐ ์๊ทธ๋์ฒ', '', '๊ธฐ์ The SUV ์คํฌํฐ์ง 2.0 ๊ฐ์๋ฆฐ 2WD ๋ ธ๋ธ๋ ์ค', '', '๊ธฐ์ K5 3์ธ๋ 2.0 LPI ๋ ํฐ์นด ์คํ ๋ค๋', '', '..
![python ์ฝ๋ ์๊ฐ ๊ณ์ฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnJCAM%2FbtrlY48TTBS%2FAScuwauKFeRJxqFQIphZK1%2Fimg.png)
python ์ฝ๋ ์๊ฐ ๊ณ์ฐ
์๊ฐ์ธก์ ์ด์๊ฒ ํ๋ ๋ฐฉ๋ฒ import math import time import datetime start = time.time() math.factorial(12345678910) end = time.time() sec = (end - start) result = datetime.timedelta(seconds=sec) print(result) result_list = str(datetime.timedelta(seconds=sec)).split(".") print(result_list[0])
![Kernel died with exit code 1073741845 ์๋ฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5FZVL%2FbtrlXCZlCyz%2Fz2124NxHcuYUbo8A5MX1T0%2Fimg.png)
Kernel died with exit code 1073741845 ์๋ฌ
์ฃผ๋ก VSCODE๋ฅผ ํ์ฉํ๋ค ์ฃผํผํฐ ๋ ธํธ๋ถ ์ธํฐํ์ด์ค๋ณด๋ค๋ jupyter notebook extention์ ํ์ฉํด์ ๋ฐ์ดํฐ ๋ถ์์ ํ๋๊ฒ ์ต์ํ๋ค. ํ์ง๋ง ์ ์ฐ๋ค๊ฐ, ๋ ธํธ๋ถ์์ ์ฐ๋๊ฑธ ๋ฐ์คํฌํ ํฐ ํ๋ฉด์์ ๋ณด๊ณ ์ถ์ด์, ๋ฒ์ ์ ๋์ผ์ ํ๋ ค๊ณ ์๋์ฝ๋ค ํ๋กฌํํธ์ฐฝ์์ python 3.8.8 ๋ฒ์ ์ ๋ค์ด๋ฐ๊ณ , vscode๋ฅผ ์คํํ๋๊น ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. 1์ฐจ ๋ฉ๋ถ. "Kernel died with exit code 1073741845" ์๋ฌ๊ฐ ๋จ๋ฉด์ ์ปค๋์ด ์ ์ด๋ฆฌ๋ ๊ฒ์ด์๋ค. ์ค๊ฐ์ kernel exit ์๋ฌ๋ ๋ณ๋ค. ์๋ฌด๋ฆฌ ์ ํค์๋๋ก ์ฐพ์๋ณด๊ณ ์ฌ์ค์น๋ฅผ ํด๋ด๋ ๊ณ ์น ์๊ฐ ์์๋ค . ๊ทธ๋ฐ๋ฐ ์๋ฌ์ฝ๋๊ฐ ๋ฌ๋ผ์ ธ์ ๋ฌ๋ผ์ง ์ฝ๋๋ก ๊ฒ์ํด๋ณด๊ณ ์ ๋ต์ ์ฐพ์๋ค. jupyter lab๊ณผ์ ์ถฉ๋ ๋๋ฌธ์ด์๋ค! ๊ทธ๋์ ๋ค์๊ณผ..
selenium.webdriver.common.keys
Selenium library: ์น ํฌ๋กค๋ง ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Keys ๋ชจ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ํค๋ณด๋์ ํค๋ฅผ ์ปดํจํฐ์ ์ ๋ฌํ๊ธฐ ์ํด์ ์ฌ์ฉํจ send_keys( ์ ๋ ฅํ ํค) from selenium.webdriver.common.keys import Keys ์ ๋ ฅํ ํค ๋ชฉ๋ก:์ ๋ ฅํ ํค Kyes.ENTER, Keys.ARROW_DOWN, Keys.ARROW_LEFT, Keys.ARROW_RIGHT, Keys.ARROW_UP, Keys.BACK_SPACE, Keys.CONTROL, Keys.ALT, Keys.DELETE, Keys.TAB, Keys.SPACE, Keys.SHIFT, Keys.EQUALS, Keys.ESCAPE, Keys.HOME, Keys.INSERT, Keys.PAGE_UP, Keys.PAGE_..
![[python] crawling customizing](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyOt9m%2FbtrlLxbqqEI%2FFa59JfI9XviOnKYF6u1Kzk%2Fimg.png)
[python] crawling customizing
ํ์ด์ ํฌ๋กค๋ง ์ ๋ฐ์ ์ธ ์ฝ๋ / ํน์ง ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ณด์ง ์๊ณ ํฌ๋กค๋งํ๋ ๋ฐฉ์ 2๋ฒ์จฐ ํญ์ผ๋ก ์์ฐฝ์ผ๋ก ์์ฑ ๋ธ๋ญํฌ ์คํฌ๋ํ์ ์ ๋ฌธ์ผ๋ก ํ๋ ๋ชจ๋ ์์ฑ ํ๋๋ ๋น์ฐฝ์ด๊ณ , ํ๋๋ ํ๊ฒ์ฐฝ URL๋ก ์คํฌ๋ํํ ๋ ๊ดํธ๊ฐ ์์ผ๋ฉด ์ผ๋ถ๋ถ๋ง ์งค๋ผ์ / ํน์ ์ซ์*์ ์ฒด์๋ง ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ XPATH F TYPE ์ผ๋ก ํด๋น URL๋ฐ๋ณต ๋ค์ด๋ฒ ๋ก๊ทธ์ธ ๋ฐฉ๋ฒ 2๊ฐ์ง ๋น๊ต 1. send keys() ๋ก ๊ฐ๋ ๋ฐฉ๋ฒ driver.implicitly_wait(3) driver.get('https://nid.naver.com/nidlogin.login') # ์์ด๋/๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํด์ค๋ค. driver.find_element_by_name('id').send_keys('naver_id') driver.find_element_by_name(..
![[git/ source tree] ํ์ ํ ์ฌ์ฉ๋ฒ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJdZO1%2FbtrlD3JTuJ1%2FZ5RmQT9lV52kgCEu9uzOSk%2Fimg.png)
[git/ source tree] ํ์ ํ ์ฌ์ฉ๋ฒ
1. source tree https://ux.stories.pe.kr/181 Git GUI ์์คํธ๋ฆฌ(SourceTree) ์ค์น๋ฐฉ๋ฒ๊ณผ ์ฌ์ฉ๋ฐฉ๋ฒ ๋ฉ์ฐ ๊ฐ๋ฐ์ ๊ฐ์ ๊ฒฝ์ฐ ๊ฒ์ ํ๋ฉด์ ํ์์ ๊ธ์จ๋ก ํ์ดํ์ ์น๋ฉฐ Git ๋ช ๋ น์ด๋ฅผ ์คํ์ํฌํ ๋ฐ์. ๊ทธ๊ฒ ๋ฉ์ง๊ธด ํ์ง๋ง ํธํ ํํ๋ ์๋๋๋ค. Git์ ์ข๋ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Git GUI(Graphic User ux.stories.pe.kr ์ค์น ์ฅ์ : https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git cl..
![vscode ๋จ ์ฌ์ฉ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3nTkc%2Fbtrleqyatu7%2FRC8HFMlRyUoUmSoNUl3uO1%2Fimg.png)
vscode ๋จ ์ฌ์ฉ
ํ์ด์ ์ผ๋ก tensorflow, keras ๋ฅผ ์ด์ฉํด์ ์ค์ต์ ํ๋์ค์, ์ฐ๊ฒฝ๋ง ํ์ต์์ ๋ค์ธต ํผ์ ํธ๋ก ์ผ๋ก epoch 1000๋ฒ์ผ๋ก ๋๋ฆฌ๋ค๊ฐ 10๋ฐฐ์ธ 10000๋ฒ์ผ๋ก ์์ ํ์๋๋, vscode ๊ฐ์๊ธฐ ๋ฉ์ถ๋๋, ๋จ ์ฌ์ฉ๋์ด ์ต๋๊ฐ ๋์ด ๊ฐ์ ์ข ๋ฃ๋์๋ค. gpu ์ค์ ์ผ๋ก ํ์ฌ ๋ฅ๋ฌ๋์ ์งํํ์๋๋ฐ, ๋จ 20๊ธฐ๊ฐ๋ ๊ด์ฐฎ์์ค ์์๋๋ฐ ์๋์๋ค.. ๋ฉ๋ชจ๋ฆฌ๋ ๋ฆฌ์์ค๋ ๋ค ๋บด์๊ธด๋ฏ.. ์ฌ๊ธฐ์ ํ์ฑํ ํจ์๋ฅผ ์ข ์ข์๊ฑธ ์ฐ๊ณ , loss ํจ์๋ฅผ ๋น ๋ฅธ๊ฑธ ํํ๋ฉด ์ข ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค