我有一个JSON文件,其中包含各自包含元素的对象。使用我的python脚本,我只保留我想要的对象,然后将我想要的元素放在列表中。但该元素有一个前缀,我想从列表中删除。 后脚本JSON看起来像这样:
{
"ip_prefix": "184.72.128.0/17",
"region": "us-east-1",
"service": "EC2"
}
" IP /掩码"是我想要保留的。列表看起来像这样:
'" ip_prefix":" 23.20.0.0/14" ,'
那么我该怎么办才能在列表中保留" 23.20.0.0/14" ?
以下是代码:
json_data = open(jsonsourcefile)
data = json.load(json_data)
print (destfile)
d=[]
for objects in (data['prefixes']):
if servicerequired in json.dumps(objects):
#print(json.dumps(objects, sort_keys=True, indent=4))
with open(destfile, 'a') as file:
file.write(json.dumps(objects, sort_keys=True, indent=4 ))
with open(destfile, 'r') as reads:
liste = list()
for strip in reads:
if "ip_prefix" in strip:
strip = strip.strip()
liste.append(strip)
print(liste)
谢谢, dersoi
答案 0 :(得分:0)
我重构了你的代码,试试这个:
import json
with open('sample.json', 'r') as data:
json_data = json.loads(data.read())
print json_data.get('ip_prefix')
# Output: "184.72.128.0/17"
答案 1 :(得分:0)
您可以将第二个open
块重写为:
with open(destfile, 'r') as reads:
data = json.load(reads)
liste = [i['ip_prefix'] for i in data]
虽然,我认为你不需要写入中间文件,但你可以将两个块合并。
答案 2 :(得分:0)
好的,我已经浏览了你的JSON对象
import json, urllib2
url = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
req = urllib2.Request(url)
res = urllib2.urlopen(req)
j = json.load(res)
print j['prefixes'][0]['ip_prefix']
prefixes = j['prefixes']
for i in prefixes:
print i['ip_prefix']
结果:
>>>
23.20.0.0/14
23.20.0.0/14
27.0.0.0/22
43.250.192.0/24
43.250.193.0/24
46.51.128.0/18
46.51.192.0/20
46.51.216.0/21
46.51.224.0/19
etc...
所以现在你想要所有的一个txt文件对吗? 所以你这样做:
import json, urllib2
url = 'https://ip-ranges.amazonaws.com/ip-ranges.json'
req = urllib2.Request(url)
res = urllib2.urlopen(req)
j = json.load(res)
#print j['prefixes'][0]['ip_prefix']
prefixes = j['prefixes']
destfile = 'destfile.txt'
with open('destfile.txt', 'w') as f:
for i in prefixes:
#print i['ip_prefix']
f.write(i['ip_prefix'])
f.write('\n')
f.close
祝你好运, Rizzit