Как вызвать переменную внутри строки? - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь вызвать переменную внутри строки, но не могу заставить ее работать. Я пытался исследовать это, но не могу найти способ заставить его работать.

Как я могу вызвать set_drive в разделе Drive супа = post. :

set_drive = "ON"

soup = post("""
<?xml version="1.0" encoding="UTF-8"?>
<Packet>
<Command>setRequest</Command>
<DatabaseManager>
<Mnet Group="18" Drive=set_drive Mode="COOL" SetTemp="19" AirDirection="HORIZONTAL" FanSpeed="HIGH" />
</DatabaseManager>
</Packet>
""")

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Рекомендуемое (и наиболее читаемое и переносимое) решение - использовать str.format():

set_drive = "ON"

template = """
<?xml version="1.0" encoding="UTF-8"?>
<Packet>
<Command>setRequest</Command>
<DatabaseManager>
<Mnet Group="18" Drive="{set_drive}" Mode="COOL" SetTemp="19" AirDirection="HORIZONTAL" FanSpeed="HIGH" />
</DatabaseManager>
</Packet>
"""

soup = post(template.format(set_drive=set_drive))
0 голосов
/ 03 июля 2018

set_drive = "ON"

query = 
"""<?xml version="1.0" encoding="UTF-8"?>
<Packet>
<Command>setRequest</Command>
<DatabaseManager>
<Mnet Group="18" Drive={set_drive} Mode="COOL" SetTemp="19" AirDirection="HORIZONTAL" FanSpeed="HIGH" />
</DatabaseManager>
</Packet>
"""
query.format(set_drive=set_drive)
0 голосов
/ 03 июля 2018

Использовать форматирование строки. Есть много вариантов в Python.

set_drive = "ON" 
result = "Drive=%s" % set_drive  # traditional way
result = f"Drive={set_drive}" # python 3.6+ way
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...