Очистка массива для датирования в Python - PullRequest
0 голосов
/ 03 октября 2018

У меня есть вопрос, тесно связанный с Scrape arraytodatatable с python .

Я использовал отличный совет для обработки информации с сайта: http://www.oilsandsmagazine.com/energy-statistics/oil-and-gas-prices#dailyUSD

Iпрочитайте страницу и хотите извлечь часть данных, которая выглядит следующим образом:

var data1 = google.visualization.arrayToDataTable([
      ['date', 'BRENT', 'WTI', 'CDN LIGHT', 'WCS'],
      [new Date(2018, 3, 1), null, null, null,null],

      [new Date(2018, 3, 2), 67.64, 63.01, 58.53, 42.53],
      [new Date(2018, 3, 3), 68.12, 63.51, 58.58, 44.53],
      [new Date(2018, 3, 4), 68.02, 63.37, 58.12, 45.53],
      [new Date(2018, 3, 5), 68.33, 63.54, 58.20, 46.05],
      [new Date(2018, 3, 6), 67.11, 62.06, 56.39, 44.65],
      ])

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

pattern = re.compile(r"var data1 = google\.visualization\.arrayToDataTable\((.*?)\);", re.MULTILINE | re.DOTALL)
data = pattern.search(res.text).group(1)
data=data.replace('new Date','')

Iполучить данные, близкие к тому, что мне нужно.

  [
  ['date', 'BRENT', 'WTI', 'CDN LIGHT', 'WCS'],
  [new Date(2018, 3, 1), null, null, null,null],

  [new Date(2018, 3, 2), 67.64, 63.01, 58.53, 42.53],
  [new Date(2018, 3, 3), 68.12, 63.51, 58.58, 44.53],
  [new Date(2018, 3, 4), 68.02, 63.37, 58.12, 45.53],
  [new Date(2018, 3, 5), 68.33, 63.54, 58.20, 46.05],
  [new Date(2018, 3, 6), 67.11, 62.06, 56.39, 44.65],
  ]

, но когда я пытаюсь:

data2 = ast.literal_eval(data)

ast.literal_eval () завершается ошибкой.Я не думаю, что ему нравится формат даты.Я пытаюсь в конечном итоге получить это в панде Dataframe.

Раньше я никогда не использовал модуль ast, поэтому я ищу любую помощь / указатели, которые вы можете предложить.

Сильно признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...