๐Ÿ’›์นด์นด์˜ค api๋ฅผ ์ด์šฉํ•œ ์–ธ์–ด ๊ฐ์ง€ + ๋ฒˆ์—ญ ํ”„๋กœ๊ทธ๋žจ (with. ํŒŒ์ด์ฌ pandas)

์ง€๋‹ˆ๋ฐ•๋ฐ•๊ตฌ๋ฆฌยท2021๋…„ 4์›” 9์ผ
1
post-thumbnail

๐Ÿ’› ๋“ค์–ด๊ฐ€๊ธฐ ์ „, ์ž๋ฌธ ์ž๋‹ต!

Q1. ์™œ ๋ฒˆ์—ญ api๋ฅผ ์‚ฌ์šฉํ–ˆ๋‚˜์š”?

ํ•™๋ถ€์ƒ์œผ๋กœ ์ง„ํ–‰์ค‘์ธ ์—ฐ๊ตฌ์—์„œ
๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” csv ํŒŒ์ผ์˜ ์ผ๋ถ€๋ฅผ ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญํ•ด์•ผํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋‹ค!

ํŒŒ์ด์ฌ pandas๋กœ csv ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€ ๊ทธ ์ค‘ ์™ธ๊ตญ์–ด๋ฅผ ํ•œ๊ตญ์–ด๋กœ ๊ฐ์ง€ํ•ด์•ผ ํ–ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋งˆ๋‹ค ์–ธ์–ด๊ฐ€ ๋‹ฌ๋ผ์„œ
์ž๋™์œผ๋กœ ์–ธ์–ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  -> ์ด๋ฅผ ๋ฒˆ์—ญํ•˜๋Š”
ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ–ˆ๋‹ค.

Q2. ์™œ ์นด์นด์˜ค api๋ฅผ ์„ ํƒํ–ˆ๋‚˜์š”?

์ฒ˜์Œ์—๋Š” ํŒŒํŒŒ๊ณ ๋ฅผ ์ด์šฉํ–ˆ์—ˆ๋‹ค.
๊ทธ!๋Ÿฌ!๋‚˜!
ํŒŒํŒŒ๊ณ ๋Š” ๋„ค๋œ๋ž€๋“œ์–ด๋Š” ์ง€์›์ด ์•ˆ๋œ๋‹ค๋Š” ์น˜๋ช…์ ์ด ๋‹จ์ ์ด ์žˆ์—ˆ๋‹ค.

๋ฒˆ์—ญํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ ์ค‘ ๋„ค๋œ๋ž€๋“œ์–ด๊ฐ€ ๋งŽ์•˜๊ธฐ ๋•Œ๋ฌธ์—
๋„ค๋œ๋ž€๋“œ์–ด๋„ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ๋Š” ์นด์นด์˜ค api๋ฅผ ์„ ํƒํ–ˆ๋‹ค.


๐Ÿ’› ์–ธ์–ด ๊ฐ์ง€

1. Request

ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์–ธ์–ด๋ฅผ ๊ฐ์ง€ํ•  ๋ฌธ์žฅ์„ ๋ณด๋‚ธ๋‹ค.

2. Response

์šฐ๋ฆฌ๊ฐ€ query๋ฅผ ์ฃผ๋ฉด language_info๋ผ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค
์ด ์•ˆ์— ์›ํ•˜๋˜ ์–ธ์–ด๊ฐ์ง€ ๊ฒฐ๊ณผ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

์•„๋ž˜๋Š” response sample ์ด๋‹ค.
์ด ์ค‘ ๋ฒˆ์—ญ ๊ฒฐ๊ณผ์ธ code์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ๋ฐ›์•„์˜ค๋ ค๋ฉด
respose ์ „์ฒด์—์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ์ชผ๊ฐœ์•ผ ํ•œ๋‹ค.
๊ทธ ๊ณผ์ •์€ ํŒŒ์ด์ฌ ์ฝ”๋“œ ์ฃผ์„์œผ๋กœ ์ ์—ˆ๋‹ค.

3. ํŒŒ์ด์ฌ ์ฝ”๋“œ

import requests
import json

url = "https://dapi.kakao.com/v3/translation/language/detect"
for i in range(len(material_list)) :
  queryString = {
      "query" : material_list[i]
  }
  header = {"Authorization": "KakaoAK kkkkkkkkkkkkkkkkkkkk"}
  r = requests.get(url, headers=header, params=queryString)

  # resoponse ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜
  r_dic= r.json()

  # ๋”•์…”๋„ˆ๋ฆฌ์— ์žˆ๋Š” "language_info" ๊ฐ’ ์ถ”์ถœ
  language_info = r_dic["language_info"]

  # language_info์˜ ์ฒซ๋ฒˆ์งธ ๊ฒฐ๊ณผ ์ถ”์ถœ
  language_info_first = language_info[0]

  # "code" ๊ฐ’ ์ถ”์ถœ
  lan_list.append(language_info_first["code"])

๋ณ€์ˆ˜ ์„ค๋ช…

  • material_list : ์–ธ์–ด ๊ฐ์ง€๋ฅผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฆฌ์ŠคํŠธ
  • lan_list : ์–ธ์–ด ๊ฐ์ง€ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋ฆฌ์ŠคํŠธ



๐Ÿ’› ๋ฒˆ์—ญ

์œ„์—์„œ ์ž‘์—…ํ•œ ์–ธ์–ด ๊ฐ์ง€ ๊ฒฐ๊ณผ๋ฅผ ๋‹ด์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด
๋ฐ์ดํ„ฐ๋ฅผ ๋ฒˆ์—ญํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

๋ฒˆ์—ญ์€ ์นด์นด์˜ค api๊ฐ€ ์•„๋‹Œ ํŒŒ์ด์ฌ ๋ชจ๋“ˆ kakaotrans๋ฅผ ์ด์šฉํ–ˆ๋‹ค.

1. kakaotrans ์„ค์น˜

pip install kakaotrans

2. ํŒŒ์ด์ฌ ์ฝ”๋“œ

from kakaotrans import Translator
translator = Translator()

for i in range(len(material_list)) :
   material_result_list.append(translator.translate(material_list[i], src=lan_list[i], tgt='de'))





์ฐธ๊ณ  ์ž๋ฃŒ :
1. ์นด์นด์˜ค ๋ฒˆ์—ญapi ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ
2. [Python] ํŒŒ์ด์ฌ์œผ๋กœ ๋‹ค์Œ ์นด์นด์˜ค(Daum Kakao) Open API ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

profile
ํ‚น์™•์งฑ DevOps Engineer๊ฐ€ ๋˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€