You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何使用Python 3.6解析返回的JSON字符串?

如何用Python 3.6解析这段JSON字符串?

嘿,刚接触Python的话,解析JSON真的没你想的那么复杂!Python自带了专门处理JSON的json模块,完全不用额外装库,我一步步给你演示怎么操作。

首先要提个小细节:你提供的最后一条JSON数据看起来被截断了("city": "Bal..."这里),实际解析时必须保证JSON格式完全合法——比如引号是双引号、逗号位置正确、没有这种不完整的字符串,不然会直接抛出解析错误。我先补全这条数据,用完整的合法JSON来做演示。

步骤1:导入json模块

Python 3.6默认自带这个模块,直接导入就行:

import json

步骤2:准备你的JSON字符串

把你的JSON内容用三重引号包裹(避免转义麻烦):

# 补全了最后一条数据的city字段,确保格式合法
json_str = '''
[{
    "src": "125.167.217.133",
    "dpt": "80",
    "city": "Balikpapan",
    "country_flag": "http://assets.ipstack.com/flags/id.svg",
    "to_char": "26-04-2018"
},
{
    "src": "93.104.209.73",
    "dpt": "80",
    "city": null,
    "country_flag": "http://assets.ipstack.com/flags/de.svg",
    "to_char": "26-04-2018"
},
{
    "src": "125.167.217.133",
    "dpt": "443",
    "city": "Balikpapan",
    "country_flag": "http://assets.ipstack.com/flags/id.svg",
    "to_char": "26-04-2018"
}]
'''

步骤3:解析JSON字符串

用json.loads()方法把JSON字符串转换成Python能直接操作的列表和字典:

data = json.loads(json_str)

现在data就是一个Python列表,每个元素都是一个字典,对应JSON里的每一条数据。

步骤4:访问解析后的数据

你可以像操作普通列表和字典一样获取数据:

  • 获取第一条数据的源IP:
print(data[0]['src'])  # 输出:125.167.217.133
  • 遍历所有数据,打印每个IP和对应的城市(处理city为null的情况):
for item in data:
    # 当city是null时,Python里会变成None,用or替换成"未知"
    city = item['city'] or "未知"
    print(f"IP地址:{item['src']},目标端口:{item['dpt']},城市:{city}")

运行后会输出:

IP地址:125.167.217.133,目标端口:80,城市:Balikpapan
IP地址:93.104.209.73,目标端口:80,城市:未知
IP地址:125.167.217.133,目标端口:443,城市:Balikpapan

额外小技巧:如果JSON来自文件

如果你的JSON数据是存在.json文件里的,不用先读成字符串,直接用json.load()方法读取:

with open('your_data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

注意事项

  • 一定要保证JSON格式合法:比如所有字符串用双引号,null是小写(解析后会自动变成Python的None),没有多余的逗号或者截断内容;
  • Python 3.6+会保留字典的插入顺序,所以解析后的字典和JSON里的键顺序是一致的,这点很方便。

内容的提问来源于stack exchange,提问作者DMR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:57:36