Вывод сохраняет печать по вертикали - PullRequest
0 голосов
/ 15 ноября 2018

Мне удалось запрограммировать вызов API для извлечения текстов из общедоступного API («Особо неуклюжий» от Dance Gavin Dance. Дело в том, что при печати он печатает текст букв за буквой, а не вертикально, как показано на рисунке).на API. Это код:

import json
import requests

api_url_base = 'https://api.lyrics.ovh/v1/'
headers = {'Content-Type': 'application/json',
           'charset': 'utf-8'}

def get_lyrics_info():

        api_url ='{0}Dance%20Gavin%20Dance/Awkward'.format(api_url_base)
        response = requests.get(api_url, headers=headers)

 if response.status_code == 200:
       return json.loads(response.content.decode('utf-8'))
   else:
       return None

lyric_info = get_lyrics_info()

if lyric_info is not None:
   print("Here is your info: ")
   for lyrin in lyric_info["lyrics"]:
      print(lyrin)

else:
   print('[!] Request Failed')

Вот так выглядит вывод (это только часть вывода, просто чтобы показать вам, как он выглядит):

D
o
n
'
t

m
a
k
e

t
h
i
s

a
w
k
w
a
r
d

Я пытался использовать функцию wrap (), функцию fill (), но переменная "lyrin" не является строкой. Как я могу это исправить?

1 Ответ

0 голосов
/ 16 ноября 2018

for lyrin in lyric_info["lyrics"] будет перебирать все chars Использовать for lyrin in lyric_info["lyrics"].split('\n'):

или делать sys.stdout.write(lyrin)

import json
import requests

api_url_base = 'https://api.lyrics.ovh/v1/'
headers = {'Content-Type': 'application/json',
           'charset': 'utf-8'}

def get_lyrics_info():
   api_url ='{0}Dance%20Gavin%20Dance/Awkward'.format(api_url_base)
   response = requests.get(api_url, headers=headers)

   if response.status_code == 200:
       return json.loads(response.content.decode('utf-8'))
   else:
      return None

lyric_info = get_lyrics_info()

if lyric_info is not None:
      print("Here is your info: ")
      for lyrin in lyric_info["lyrics"].split('\n'):
         print(lyrin)

else:
       print('[!] Request Failed')

или

import json
import requests
import sys

api_url_base = 'https://api.lyrics.ovh/v1/'
headers = {'Content-Type': 'application/json',
           'charset': 'utf-8'}

def get_lyrics_info():
   api_url ='{0}Dance%20Gavin%20Dance/Awkward'.format(api_url_base)
   response = requests.get(api_url, headers=headers)

   if response.status_code == 200:
       return json.loads(response.content.decode('utf-8'))
   else:
      return None

lyric_info = get_lyrics_info()

if lyric_info is not None:
      print("Here is your info: ")
      for lyrin in lyric_info["lyrics"]:
         sys.stdout.write(lyrin)

else:
       print('[!] Request Failed')
...