访问python字典中的元素

时间:2019-05-02 12:07:10

标签: python-3.x

我在下面有一个简单的代码。我想访问“ RTYM9索引”和1593.3

d= {
  "schema": {
    "type": "string",
    "optional": false
  },
  "payload": "{\"subscriptionId\":\"//blp/mktdata/RTYM9 Index?fields=LAST_PRICE\",\"MarketDataEvents\":{\"LAST_PRICE\":1593.3}}"
}

我尝试了以下代码。

f=d['payload']

print(' "Bloomber Data" : ', json_data_f.split("mktdata/")[1].split("?")[0])
print(' "Price" : ', f.split("LAST_PRICE")[2])

所需的输出-

{"Bloomberg Data" : 'RTYM9 Index',
"Price" : 159.3}

2 个答案:

答案 0 :(得分:0)

Python 3对{0, 1, 2, 3, 4} {1, 2, 3, 4, 5} 使用大写字母,也未定义False,它应该为json_data_f

f

赠予:

d= {
  "schema": {
    "type": "string",
    "optional": False
  },
  "payload": "{\"subscriptionId\":\"//blp/mktdata/RTYM9 Index?fields=LAST_PRICE\",\"MarketDataEvents\":{\"LAST_PRICE\":1593.3}}"
}

f=d['payload']

print(' "Bloomber Data" : ', f.split("mktdata/")[1].split("?")[0])
print(' "Price" : ', f.split("LAST_PRICE")[2])

您可以使用 "Bloomber Data" : RTYM9 Index "Price" : ":1593.3}}

修剪多余的毛边

答案 1 :(得分:0)

Regex专为此类工作而设计,下面是一个示例:

import re

b = re.search("mktdata\/(.+)\?", f=d['payload'])

print(b.group(1))  # >>> Output: "RTYM9 Index"
  

有许多网站可让您了解正则表达式和实践,例如https://regexr.com/