用Python提取Json数据

nwo49xxi  于 2022-11-19  发布在  Python
关注(0)|答案(3)|浏览(217)

我的Jason数据如下所示:

{
    "componentId": "SD1:1100047938",
    "componentType": "Device",
    "name": "WR50MS15-7938 (WR 33)",
    "product": "SB 5000TL",
    "productTagId": 9037,
    "pvPower": 886,
    "serial": "1100047938",
    "specWhOutToday": 3.0909803921568626,
    "specWhOutYesterday": 2.924313725490196,
    "state": 307,
    "totWhOutToday": 15764,
    "totWhOutYesterday": 14914
}

我怎么能只提取:

  • “state”到单独的文件
  • “pv-power”到一个单独的文件?

谢谢你!

8wigbo56

8wigbo561#

url = "https://172.16.63.100/api/v1/overview/Plant:1/devices?todayDate=2022-10-17T12%3A53%3A16.746Z"

payload={}
headers = {
  'Authorization': 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NjYwMTU0MzMsInN1YiI6Ik1iYWNobCIsInVpZCI6Ijc1YmNkNTM2LTFhOTYtNDQ4My05MjQxLWZkNjY5Zjk3M2Y5OCIsImV4cCI6MTY2NjAxOTAzM30.bMMAsD8iPrAXDp7fbnwYL3Y8lj4Ktok3tU9NHZkYq8s'
}

response = requests.request("GET", url, headers=headers, data=payload, verify=False)

#print(response.text)

data = json.loads(response.text)

with open('data.json', 'w') as f:
    data = json.dump(data, f, indent = 2)

这是我收集JSON数据的代码。
我需要提取上述值。

jtoj6r0c

jtoj6r0c2#

运行data = json.loads(response.text)后,json作为python字典被加载到data变量中,所以state = data.statepvPower = data.pvPower应该给予你想要的信息。
我不太确定你想对这些信息做什么,至于提取到一个单独的文件,但是,json.dump()确实把数据输出到一个json文件。

hpcdzsge

hpcdzsge3#

url = "http://" + solarlog + "/getjp"

payload = "{\"608\":null}"

headers = {'content-type': 'application/json'}

response = requests.request("POST", url, data=payload, headers=headers)

data = json.loads(response.text)

original_stdout = sys.stdout

with open(info, 'w') as f:
    sys.stdout = f
    print(data["608"] ["0"])
    print(data["608"] ["1"])
    print(data["608"] ["2"])
    print(data["608"] ["3"])
    sys.stdout = original_stdout  ```

Solution ! :)

相关问题