在Python中提取JSON文本文件中的值

在Python中提取JSON文本文件中的值,python,json,Python,Json,我目前有一个JSON格式的文本文件,包含ip地址及其端口,例如: [ { “ip”:“192.0.3.202”, “端口”:[ 22, 53, 80, 443] }, { “ip”:“192.0.3.253”, “端口”:[ 179] } ] 我只想在另一行上打印ip和端口。预期产出: IP:192.0.3.202 港口:22,53,80443 IP:192.0.3.253 港口:179 我尝试过这样做: i=0 while True: ip_test = open('test.tx

我目前有一个JSON格式的文本文件,包含ip地址及其端口,例如:

[
{
“ip”:“192.0.3.202”,
“端口”:[
22,
53,
80,
443]
},
{
“ip”:“192.0.3.253”,
“端口”:[
179]
}
]
我只想在另一行上打印ip和端口。预期产出:

IP:192.0.3.202
港口:22,53,80443
IP:192.0.3.253
港口:179
我尝试过这样做:

i=0
while True:
    ip_test = open('test.txt', 'r')
    ip_line=ip_test.readlines()
    a=ip_line[i].strip("{\"ip\": ")
    print(a)

然而,我的输出只是去掉了前几个字符,仅仅处理文本可能不是最好的方法,因为Python在标准库中提供了对JSON的支持

您可以使用
import json
访问该库,然后操作生成的数组


请参阅此处的文档:

仅处理文本可能不是解决此问题的最佳方法,因为Python在标准库中提供了对JSON的支持

您可以使用
import json
访问该库,然后操作生成的数组


请参阅此处的文档:

strip
不删除前缀;它删除iterable参数中出现的任何前导或尾随字符

但是您不应该试图手动解析内容;使用
json
解析数据并处理结果
dict

import json

with open('test.txt') as ip_test:
    data = json.load(ip_test)

for obj in data:
    print(f"IP: {obj['ip']}")
    print(f"Port: {','.join(obj['port'])}")

strip
不删除前缀;它删除iterable参数中出现的任何前导或尾随字符

但是您不应该试图手动解析内容;使用
json
解析数据并处理结果
dict

import json

with open('test.txt') as ip_test:
    data = json.load(ip_test)

for obj in data:
    print(f"IP: {obj['ip']}")
    print(f"Port: {','.join(obj['port'])}")
使用模块:


输出:

ID: 192.0.3.202
Port: 22, 53, 80, 443

ID: 192.0.3.253
Port: 179
使用模块:


输出:

ID: 192.0.3.202
Port: 22, 53, 80, 443

ID: 192.0.3.253
Port: 179
你读了吗?你也可以用熊猫:你读了吗?您还可以使用熊猫: