티스토리 뷰

라즈베리파이 LCD가 영어밖에 프린트가 안 되서 파파고로 번역기 돌리는 코드를 추가했다.

 

import csv
import drivers
# import I2C_LCD_driver
from time import sleep
import os
import sys
import urllib.request
import json

#naver api
CLIENT_ID = '북여기에 본인거'
CLIENT_SECRET = '북여기에본인거'

#LCD display
display = drivers.Lcd()
# display = I2C_LCD_driver.lcd()


#request
def search_book(query):

    from urllib.request import Request, urlopen

    from urllib.parse import urlencode, quote

    import json



    # request = Request('https://openapi.naver.com/v1/search/book?query='+quote(query))
    #isbn
    request = Request('https://openapi.naver.com/v1/search/book_adv?d_isbn='+quote(query))

    request.add_header('X-Naver-Client-Id', CLIENT_ID)

    request.add_header('X-Naver-Client-Secret', CLIENT_SECRET)



    response = urlopen(request).read().decode('utf-8')

    search_result = json.loads(response)

    return search_result


def papago(book):
    client_id = "파파고 본인거" # 개발자센터에서 발급받은 Client ID 값
    client_secret = "파파고본인거" # 개발자센터에서 발급받은 Client Secret 값
    encText = urllib.parse.quote(book)
    data = "source=ko&target=en&text=" + encText
    url = "https://openapi.naver.com/v1/papago/n2mt"
    request1 = urllib.request.Request(url)
    request1.add_header("X-Naver-Client-Id",client_id)
    request1.add_header("X-Naver-Client-Secret",client_secret)
    response1 = urllib.request.urlopen(request1, data=data.encode("utf-8"))
    rescode = response1.getcode()
    if(rescode==200):
        response_body = response1.read()
        #json 형 변환
        res = json.loads(response_body.decode('utf-8'))
        print(res['message']['result']['translatedText'])

        return res['message']['result']['translatedText']

    else:
        print("Error Code:" + rescode)


if __name__ == "__main__":
    #csv first line only
    f = open('barcodes.csv', 'r', encoding='utf-8')
    rdr = csv.reader(f)
    for line in rdr:
        #search
        print(line[1])
        books = search_book(line[1])['items']

        #erro
        if(books == None):
            print("fail")
            exit()
        
        #print
        for book in books:
            print("title: " + book['title'])
            print("price: "+book["price"]+"won")
            title = book['title']
            price = book["price"]+"won"
            papares= papago(title)
            try:
                while True:
                    # Remember that your sentences can only be 16 characters long!
                    print("Writing to display")
                    display.lcd_display_string(papares, 1)  # Write line of text to first line of display
                    display.lcd_display_string(book["price"]+"won", 2)  # Write line of text to second line of display
                    sleep(6)                                           # Give time for the message to be read
                    display.lcd_clear()                                # Clear the display of any data
                    sleep(2)                                           # Give time for the message to be read
            except KeyboardInterrupt:
                # If there is a KeyboardInterrupt (when you press ctrl+c), exit the program and cleanup
                print("Cleaning up!")
    display.lcd_clear()
    f.close()

 

{"message":{"result":{"srcLangType":"ko","tarLangType":"en","translatedText":"OpenCV4 programming using C# and Python (from basic computer vision theory to video processing projects using machine learning)","engineType":"N2MT","pivot":null,"dict":null,"tarDict":null,"modelVer":"Unknown"},"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0"}}

값이 {} 오브젝트에 들어있을 때 원하는 값만 가져오는게 어렵다.

        response_body = response1.read()
        #json 형 변환
        res = json.loads(response_body.decode('utf-8'))
        print(res['message']['result']['translatedText'])

        return res['message']['result']['translatedT']

 

res['message']['result']['translatedText']

번역된 translatedText만 잘불러와진다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함