3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
你需要轉(zhuǎn)換json為dictionary
import json
data = json.loads(typ_json)
print(data['FromPort'])
有時(shí)json可能會(huì)給出一些錯(cuò)誤。在這種情況下,您可以使用ast.literal_eval
import ast
data = ast.literal_eval(typ_json)
print(data['FromPort'])

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
那是not有效的JSON。您需要替換 thequotes和load生成的string,例如,
>>> import json
>>> typ_json
"{'FromPort': 80, 'IpProtocol': 'tcp', 'IpRanges': [{'CidrIp': '0.0.0.0/0'}], 'Ipv6Ranges': [{'CidrIpv6': '::/0'}], 'PrefixListIds': [], 'ToPort': 80, 'UserIdGroupPairs': []}"
>>> x = typ_json.replace("'", '"')
>>> json.loads(x) # now it is a `dict` and you can access the values
{u'PrefixListIds': [], u'FromPort': 80, u'IpRanges': [{u'CidrIp': u'0.0.0.0/0'}], u'ToPort': 80, u'IpProtocol': u'tcp', u'UserIdGroupPairs': [], u'Ipv6Ranges': [{u'CidrIpv6': u'::/0'}]}
>>> json.loads(x)['FromPort']
80

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
import json
import ast
typ_json="{'FromPort': 80, 'IpProtocol': 'tcp', 'IpRanges': [{'CidrIp': '0.0.0.0/0'}], 'Ipv6Ranges': [{'CidrIpv6': '::/0'}], 'PrefixListIds': [], 'ToPort': 80, 'UserIdGroupPairs': []}"
port = ast.literal_eval(typ_json)
print(port['FromPort'])
添加回答
舉報(bào)