【问题标题】:Extract data from GCP source ips JSON file从 GCP 源 ips JSON 文件中提取数据
【发布时间】:2022-02-11 05:34:35
【问题描述】:

我正在尝试在 GCP 中在我的 VPC 设置中设置防火墙规则,使用监控使用的所有 Google IP 作为源,GCP 允许下载以下 txt 文件

[{"ipAddress":"104.155.77.122","region":"EUROPE","location":"Belgium"},{"ipAddress":"104.155.110.139","region":"EUROPE","location":"Belgium"},{"ipAddress":"146.148.119.250","region":"EUROPE","location":"Belgium"},{"ipAddress":"35.195.128.75","region":"EUROPE","location":"Belgium"},{"ipAddress":"35.240.124.58","region":"EUROPE","location":"Belgium"},{"ipAddress":"35.205.234.10","region":"EUROPE","location":"Belgium"},{"ipAddress":"35.205.72.231","region":"EUROPE","location":"Belgium"},{"ipAddress":"35.187.114.193","region":"EUROPE","location":"Belgium"},{"ipAddress":"35.205.205.242","region":"EUROPE","location":"Belgium"},{"ipAddress":"35.187.242.246","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.186.144.97","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.198.221.49","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.198.194.122","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.198.248.66","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.185.178.105","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.198.224.104","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.240.151.105","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"35.186.159.51","region":"ASIA_PACIFIC","location":"Singapore"},{"ipAddress":"146.148.59.114","region":"USA","location":"Iowa"},{"ipAddress":"23.251.144.62","region":"USA","location":"Iowa"},{"ipAddress":"146.148.41.163","region":"USA","location":"Iowa"},{"ipAddress":"35.239.194.85","region":"USA","location":"Iowa"},{"ipAddress":"104.197.30.241","region":"USA","location":"Iowa"},{"ipAddress":"35.192.92.84","region":"USA","location":"Iowa"},{"ipAddress":"35.238.3.7","region":"USA","location":"Iowa"},{"ipAddress":"35.224.249.156","region":"USA","location":"Iowa"},{"ipAddress":"35.238.118.210","region":"USA","location":"Iowa"},{"ipAddress":"35.197.117.125","region":"USA","location":"Oregon"},{"ipAddress":"35.203.157.42","region":"USA","location":"Oregon"},{"ipAddress":"35.199.157.7","region":"USA","location":"Oregon"},{"ipAddress":"35.233.206.171","region":"USA","location":"Oregon"},{"ipAddress":"35.197.32.224","region":"USA","location":"Oregon"},{"ipAddress":"35.233.167.246","region":"USA","location":"Oregon"},{"ipAddress":"35.203.129.73","region":"USA","location":"Oregon"},{"ipAddress":"35.185.252.44","region":"USA","location":"Oregon"},{"ipAddress":"35.233.165.146","region":"USA","location":"Oregon"},{"ipAddress":"35.186.164.184","region":"USA","location":"Virginia"},{"ipAddress":"35.188.230.101","region":"USA","location":"Virginia"},{"ipAddress":"35.199.27.30","region":"USA","location":"Virginia"},{"ipAddress":"35.186.176.31","region":"USA","location":"Virginia"},{"ipAddress":"35.236.207.68","region":"USA","location":"Virginia"},{"ipAddress":"35.236.221.2","region":"USA","location":"Virginia"},{"ipAddress":"35.221.55.249","region":"USA","location":"Virginia"},{"ipAddress":"35.199.12.162","region":"USA","location":"Virginia"},{"ipAddress":"35.186.167.85","region":"USA","location":"Virginia"},{"ipAddress":"35.199.66.47","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.198.18.224","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.199.67.79","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.198.36.209","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.199.90.14","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.199.123.150","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.198.39.162","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.199.77.186","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"},{"ipAddress":"35.199.126.168","region":"SOUTH_AMERICA","location":"Sao Paulo, Brazil"}]

我需要将所有 ip 地址提取到一个列表中,以便以后使用 gcloud 或 python 创建防火墙规则,以下代码是我尝试过的,但我遇到了错误

import json


with open("test.json") as jsonFile:
    jsonObject = json.load(jsonFile)
    jsonFile.close()

ips = jsonObject['ipAddress']

print(ips)


    C:\Scripts\Python\GCP\listipaddresses> python3 .\listips.py
Traceback (most recent call last):
  File "C:\Scripts\Python\GCP\listipaddresses\listips.py", line 8, in <module>
    product = jsonObject['ipAddress']
TypeError: list indices must be integers or slices, not str

谁能帮我实现这个目标?

谢谢 最好的问候

【问题讨论】:

    标签: python json google-cloud-platform


    【解决方案1】:

    ipAddress 不是列表的元素,您应该遍历整个列表。

    import json
    
    with open("test.json") as jsonFile:
        jsonObject = json.load(jsonFile)
        jsonFile.close()
    
    ips = []
    
    for items in jsonObject:
        ips.append(str(items['ipAddress']))
    
    print(ips)
    

    我建议更好地检查 Python 的基础知识并进一步调查此错误,有几篇关于 this 的帖子。

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 2019-01-22
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      相关资源
      最近更新 更多