Python Forum
SyntaxError: invalid syntax - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: SyntaxError: invalid syntax (/thread-19780.html)



SyntaxError: invalid syntax - jurg1505 - Jul-14-2019

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()
[Image: wQmTrT8]


RE: SyntaxError: invalid syntax - ichabod801 - Jul-14-2019

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.


RE: SyntaxError: invalid syntax - jurg1505 - Jul-14-2019

The full error message is: link to error message


RE: SyntaxError: invalid syntax - ichabod801 - Jul-14-2019

I'm not clicking on some gibberish link. Copy and paste the error message into a post.


RE: SyntaxError: invalid syntax - jurg1505 - Jul-14-2019

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



RE: SyntaxError: invalid syntax - ichabod801 - Jul-14-2019

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.