2017-01-18 7 views
-2

этот сценарий предназначен для анализа Bloomberg финансов, чтобы найти значение GBP в течение дня, это следующий скрипт делает, что, однако, когда он возвращается вы получите это:Веб-скребок с Python3 и форматирование строк?

{ «DATETIME»: «2017-01-17T22: 00: 00Z ',' value ': 1.6406}

Мне не нужен DateTime или текст значения там. Я не знаю, как избавиться от него. и когда я пытаюсь, он дает мне такие ошибки: индекс индекса вне диапазона.

любые ответы будут очень признательны. вот сценарий (в python3):

import urllib.request 
import json 

htmltext = urllib.request.urlopen('https://www.bloomberg.com/markets/api/bulk-  time-series/price/GBPAUD%3ACUR?timeFrame=1_DAY').read().decode('utf8') 

data = json.loads(htmltext) 

datapoints = data[1]['price'] 

print(datapoints) 
+0

Прежде всего, данные примера, которые вы предоставили, не содержат 'price', поэтому вы должны исключить исключение. Кроме того, объекты 'dict' не являются индексируемыми, что означает, что вы не можете выполнить' [1] '. Попробуйте, 'print (data ['value'])'. В основном данные JSON почти идентичны тем, что называет python [словари] (https://docs.python.org/3/tutorial/datastructures.html#dictionaries). И они не индексируются, к ним обращаются через значение ключа, в вашем примере выше, который будет либо «dateTime», либо «value». – Torxed

ответ

0

Это должно сработать для вас.

print (data[0]['price'][-1]['value']) 

EDIT: Чтобы получить все значения,

for data_row in data[0]['price']: 
    print data_row['value'] 

ОБЪЯСНЕНИЕ: data[0] получает первый и единственный элемент списка, который является ДИКТ.
['price'] получает список, соответствующий ценовому ключу.
[-1] получает последний элемент списка, который, по-видимому, является данными, которые вы будете искать, поскольку это последняя точка данных.
И наконец, ['value'] получает значение конверсии валюты из dict, которую мы получили ранее.

+0

как бы получить все элементы? – progress

+0

, когда я пытаюсь это сделать для значения dateTime, я получаю сообщение об ошибке, которое гласит: 'TypeError:' float 'object не подлежит расшифровке'. Что это значит? и можете ли вы мне помочь? – progress

+0

Также спасибо, что помогли мне! – progress