я функция определена, которая извлекает нужное значение из моей JSON строкиПолучение нескольких значений из JSON
2 Части вопрос:
def galPrice(commodity):
comPrice = [item['meanPrice'] for item in data['lastStarport']['commodities']
if item['name'] == commodity]
print json.dumps(comPrice)
Вопрос 1:
Значения возвращенного функция дает мне [378]
, как бы вернуть название изделия, а также значение, то есть [meanPrice : 378]
Вопрос 2:
Из этого примера я пытаюсь напечатать несколько выбранных значений, таких как meanPrice
, buyPrice
и sellPrice
поэтому выход дал бы мне:
[meanPrice : 378],
[buyPrice : 224],
[sellPrice : 209]
Единственный способ, которым я могу понять это является делая следующее, я не уверен, что это самый эффективный способ сделать это.
def galPrice(commodity):
meanPrice = [item['meanPrice'] for item in data['lastStarport']['commodities']
if item['name'] == commodity]
buyPrice = [item['buyPrice'] for item in data['lastStarport']['commodities']
if item['name'] == commodity]
sellPrice = [item['sellPrice'] for item in data['lastStarport']['commodities']
if item['name'] == commodity]
print 'Mean Price:', meanPrice
print 'Buy Price:', buyPrice
print 'Sell Price:', sellPrice
JSON:
{"lastStarport":{"id":"3230614016","name":"Vries Installation","faction":"Independent","commodities":[{"id":"128049204","name":"Explosives","cost_min":300,"cost_max":456,"cost_mean":"378.00","homebuy":"60","homesell":"56","consumebuy":"4","baseCreationQty":368,"baseConsumptionQty":0,"capacity":3868,"buyPrice":224,"sellPrice":209,"meanPrice":378,"demandBracket":0,"stockBracket":2,"creationQty":3868,"consumptionQty":0,"targetStock":3868,"stock":2166,"demand":0,"rare_min_stock":"0","rare_max_stock":"0","market_id":null,"parent_id":null,"statusFlags":[],"categoryname":"Chemicals","volumescale":"1.1400"}]}}
Благодарим вас, это то, чего я хотел достичь, поэтому, казалось бы, имя элемента 'meanPrice' будет введено вручную. Спасибо за быстрый ответ. – Marct
@Marct см. Мое обновление для более гибкого решения, если вы предпочитаете не записывать требуемые значения для вывода – enigma
. Спасибо, это будет очень полезно – Marct