亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用python訪問json中的值

使用python訪問json中的值

瀟湘沐 2022-01-11 18:03:19
我有一個如下的 JSON 字符串typ_json="{'FromPort': 80, 'IpProtocol': 'tcp', 'IpRanges': [{'CidrIp': '0.0.0.0/0'}], 'Ipv6Ranges': [{'CidrIpv6': '::/0'}], 'PrefixListIds': [], 'ToPort': 80, 'UserIdGroupPairs': []}"我想訪問FromPort和ToPort價值觀。我努力了 print(typ_json['FromPort'])但我得到了錯誤:TypeError:列表索引必須是整數或切片,而不是 str
查看完整描述

3 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

你需要轉換json為dictionary


import json

data = json.loads(typ_json)

print(data['FromPort'])

有時json可能會給出一些錯誤。在這種情況下,您可以使用ast.literal_eval


import ast

data = ast.literal_eval(typ_json)

print(data['FromPort'])


查看完整回答
反對 回復 2022-01-11
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

那是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


查看完整回答
反對 回復 2022-01-11
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

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'])


查看完整回答
反對 回復 2022-01-11
  • 3 回答
  • 0 關注
  • 247 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號