简体   繁体   English

如何从json中提取数据到字符串

[英]How to extract data from json into a string

I am not able to extract the "Data" "12639735;7490484;3469776;9164745;650;0" from this file using python: In php it's piece of cake for me but I cannot master it in python. 我无法使用python从此文件中提取“数据”“ 12639735; 7490484; 3469776; 9164745; 650; 0”:在php中,这对我来说可是小菜一碟,但我无法在python中掌握它。 Other answers from Stackexchange didn't give me the answer. Stackexchange的其他答案没有给我答案。 Here is the contents of the file test.json: 这是文件test.json的内容:

{
   "ActTime" : 1494535483,
   "ServerTime" : "2017-05-11 22:44:43",
   "Sunrise" : "05:44",
   "Sunset" : "21:14",
   "result" : [
      {
         "AddjMulti" : 1.0,
         "AddjMulti2" : 1.0,
         "AddjValue" : 0.0,
         "AddjValue2" : 0.0,
         "BatteryLevel" : 255,
         "Counter" : "20130.221",
         "CounterDeliv" : "12634.521",
         "CounterDelivToday" : "0.607 kWh",
         "CounterToday" : "1.623 kWh",
         "CustomImage" : 0,
         "Data" : "12639735;7490484;3469776;9164745;650;0",
         "Description" : "",
         "Favorite" : 1,
         "HardwareID" : 3,
         "HardwareName" : "Slimme Meter",
         "HardwareType" : "P1 Smart Meter USB",
         "HardwareTypeVal" : 4,
         "HaveTimeout" : false,
         "ID" : "1",
         "LastUpdate" : "2017-05-11 22:44:39",
         "Name" : "Elektriciteitsmeter",
         "Notifications" : "false",
         "PlanID" : "0",
         "PlanIDs" : [ 0 ],
         "Protected" : false,
         "ShowNotifications" : true,
         "SignalLevel" : "-",
         "SubType" : "Energy",
         "SwitchTypeVal" : 0,
         "Timers" : "false",
         "Type" : "P1 Smart Meter",
         "TypeImg" : "counter",
         "Unit" : 1,
         "Usage" : "650 Watt",
         "UsageDeliv" : "0 Watt",
         "Used" : 1,
         "XOffset" : "0",
         "YOffset" : "0",
         "idx" : "1"
      }
   ],
   "status" : "OK",
   "title" : "Devices"
}

This should work 这应该工作

import json

with open('test.json') as f:
    contents = json.load(f)
    print(contents['result'][0]['Data'])

Similar questions have been asked before: Parsing values from a JSON file using Python? 之前已经问过类似的问题: 使用Python从JSON文件解析值吗?

Got it. 得到它了。

url = "http://192.168.2.1:8080/json.htm?type=devices&rid=1"
response = urllib.urlopen(url)
str = json.loads(response.read())
for i in str["result"]:
  datastring = i["Data"]
  elementstring =  i["Data"].split(';')
  counter = 0
  for j in elementstring:
    if counter == 4:
      usage = j
    counter += 1
  delivery = get_num(i["UsageDeliv"])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM