Avatar billede kviller Novice
07. december 2015 - 14:21 Der er 3 kommentarer og
1 løsning

Odata / Json parse

Hej Eksperter..

Jeg har brug for, at få parset et response fra en odata database. Men jeg har lidt problemer med at finde ud af det.

Her er min kode:

import urllib2, base64,json, time, threading

username = 'XXXX'
password = 'XXXX'

request = urllib2.Request("http://api.remoni.eu/Public/CalculationResults?$filter=DeviceId%20eq%2033%20and%20ResultTypeId%20eq%2021&$top=1&$orderby=Timestamp%20desc")
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string) 
result = urllib2.urlopen(request)

data = result.read()
data = json.loads(data.decode("utf8"))

content = data['value']['Value']
print content


Her er mit response:
{
  "@odata.context": "http://api.remoni.eu/Public/$metadata#CalculationResults",
  "value": [
    {
      "CalculationResultId": "8915c70b-1cd5-48c7-9b21-aed629593148",
      "Timestamp": "2015-11-18T12:14:03.832Z",
      "ResultTypeId": 21,
      "Value": 161519.454025834,
      "DeviceId": 33,
      "JobDefinitionId": null,
      "AccountId": 3,
      "DeviceValueId": 39,
      "Unit": null
    }
  ]
}

Det eneste jeg har brug for, er at få value.Value ud i en variable, så jeg kan bruge den videre i programmet.
Avatar billede jakobdo Ekspert
07. december 2015 - 16:35 #1
Du kan med fordel bruge requests, den er lidt "nemmere" at lege med.

Denne kode:

import json
import requests
from requests.auth import HTTPBasicAuth

USERNAME = 'XXXX'
PASSWORD = 'XXXX'
URL = 'http://api.remoni.eu/Public/CalculationResults?$filter=DeviceId%20eq%2033%20and%20ResultTypeId%20eq%2021&$top=1&$orderby=Timestamp%20desc'

content = requests.get(URL, auth=HTTPBasicAuth(USERNAME, PASSWORD))
_json = json.loads(content.text)

print _json.get('value')[0].get('Value')

Og der er ingen fejlhåndtering i.
Avatar billede kviller Novice
07. december 2015 - 17:47 #2
Tusinde mange tak - Det virker bare... Smider du lige et svar?
Avatar billede jakobdo Ekspert
07. december 2015 - 18:33 #3
Svar
Avatar billede jakobdo Ekspert
08. december 2015 - 07:14 #4
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester