Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 SyntaxError: invalid syntax
#1
I am trying to set a servo with domoticz on a Raspberry pi.
The script works from the command line.

curl -s "http://127.0.0.1:8080/json.htm?type=devices&rid=59" | jq '.result[0].Level'| tr -d '"'

When i try to get the value from Domoticz i get syntax error.
The link comes from https://www.domoticz.com/wiki/Mindergas.nl

What am i doing wrong ?
import json
from jq import jq
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BOARD)
GPIO.setup(03, GPIO.OUT)
pwm=GPIO.PWM(03, 50)
pwm.start(0)

hoek=`curl -s "http://127.0.0.1:8080/json.htm?type=devices&rid=59"  | jq '.result[0].Level'| tr -d '"'`

def SetAngle(angle):
        duty = angle / 18 + 2
        GPIO.output(03, True)
        pwm.ChangeDutyCycle(duty)
        sleep(1)
        GPIO.output(03, False)
        pwm.ChangeDutyCycle(0)

SetAngle(hoek)

pwm.stop()
GPIO.cleanup()
İmage
Quote
#2
What is the full text of the error message? Specifically, what line is it saying has an index error?

I'm guessing line 10, and that the problem is that Python does not recognize the accent symbol (`), but without the full error text I can't be sure.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures

Quote
#3
The full error message is: link to error message
Quote
#4
I'm not clicking on some gibberish link. Copy and paste the error message into a post.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures

Quote
#5
Output:
File "/home/pi/servo.py", line 10 hoek=`curl -s "http://127.0.0.1:8080/json.htm?type=devices&rid=59" | jq '.result[0].Level'| tr -d '"'` ^ SyntaxError: invalid syntax
Quote
#6
Yes, the syntax error is because of the accent symbol. However, if you replace it with a quote to make it a string, that's going to cause problems with the other quotes within the string. You would need to escape those quotes:

hoek="curl -s \"http://127.0.0.1:8080/json.htm?type=devices&rid=59\"  | jq '.result[0].Level'| tr -d '\"'"
But that's going to cause other problems. That's a string, but you are passing it to SetAngle as if it's a number. It looks like a system command you would enter on the command line. Are you expecting Python to run it in the OS and get a response back? If so you need tell Python to do that, with something like os.popen. Although it looks like you are doing something with a local json file? You might want to look at the json module so you can parse the file directly.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures

Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  I am getting invalid syntax. sandeep25 0 85 Oct-13-2019, 02:02 PM
Last Post: sandeep25
  def Display Data Invalid Syntax error Linuxdesire 1 92 Oct-11-2019, 05:10 AM
Last Post: stranac
  Invalid Syntax error mustfirst 8 154 Oct-07-2019, 06:39 PM
Last Post: buran
  Invalid syntax Davidelca96 1 175 Sep-17-2019, 12:44 PM
Last Post: stranac
  SyntaxError: invalid character in identifier neogeo 2 280 Jul-27-2019, 11:11 AM
Last Post: neogeo
  SyntaxError: invalid character in identifier ricardodepaula 2 294 Jul-25-2019, 09:20 PM
Last Post: ricardodepaula
  SyntaxError: invalid syntax Truman 7 5,221 Jun-16-2019, 04:54 PM
Last Post: apollo
  Why do i have invalid syntax on a line after print, i see no error ? iofhua 5 326 May-24-2019, 05:42 PM
Last Post: Yoriz
  Invalid Syntax when using print? GalaxyCoyote 4 785 Apr-24-2019, 08:51 PM
Last Post: Larz60+
  Invalid Syntax Error jaycuff13 1 310 Apr-07-2019, 10:34 AM
Last Post: Yoriz

Forum Jump:


Users browsing this thread: 1 Guest(s)