текстовый ответ от запроса на получение в фрейм данных python pandas, исключая начало и конец строк - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в python, я работаю над кодом, который выполняет запрос на получение из api и возвращает ответ в текстовом формате, а когда я использую

print(response.text)

, я получаю ответ в формат ниже -

ResponseBegin
Name|Age|Gender|Country
"ABC"|23|M|USA
"ABCD"|21|F|CAN
ResponseEnd

Кто-нибудь может посоветовать, как преобразовать это в pandas фрейм данных, а также удалить строки ResponseBegin и ResponseEnd в начале и в конце, сделав вторую строку заголовком столбца с помощью | в качестве разделителя.

Большое спасибо за ваш совет.

Спасибо

1 Ответ

0 голосов
/ 06 августа 2020

Будет более полезно, если вы не покажете, что содержит print(response.text), а только то, что содержит response.text, поскольку функция печати выполняет некоторое форматирование для удобства чтения человеком.

Но я предполагаю, что response.text - это всего лишь одна строка, которая выглядит следующим образом:

'ResponseBegin\nName|Age|Gender|Country\n"ABC"|23|M|USA\n"ABCD"|21|F|CAN\nResponseEnd'

Обратите внимание на \n, который является символом «новой строки».

Есть несколько способов решить эту проблему, но самый простой (наименьшее количество строк кода), я думаю, это экспортировать его в файл CSV, а затем прочитать его:

with open('mydf.csv', 'w') as fh:
   fh.write(response.text)

import pandas as pd
df = pd.read_csv('mydf.csv', sep='|', skiprows=1, skipfooter=1)

Вы можете узнать больше о read_csv для всех его удобные инструменты, но здесь я использую:

  • sep: то, что нужно использовать в качестве разделителя, | в вашем случае
  • skiprows / skipfooter: количество строк в начале или в конце, которые нужно пропустить
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...