Python和变量

时间:2015-12-04 22:00:52

标签: python bash curl

我是python的新手并研究了一个日志(可能是错误的方式),现在决定问:

我有一个bash脚本,它输出两个值。在python脚本中,我通过

调用此脚本
subprocess.Popen(...skript details...)
(output, err) = p.communicate()
p_status = p.wait()
print "Command output : ", output
print "Command exit status/return code : ", p_status
value1, value2 = output.split(' ',1)

如果我现在添加

print value1

我得到了我的期望(数值)。

现在我从github获得了一些代码,使用curl在python脚本中发布数据。这构建了像

这样的身体
body='{"mode":"async", "messageType":"1", "messages":[{"Name of Value1":value1, "Name of Value2":value2}]}'

但是,发布的内容是文本“value1”和“value2”,而不是变量的实际值。我在这里尝试了很多掩蔽但是没有得到任何有价值的结果。 Thx提前

1 个答案:

答案 0 :(得分:2)

如果我理解你的错误,你需要字符串格式化。

body='{"mode":"async", "messageType":"1", "messages":[{"Name of Value1":{0}]}'.format(value1)

由内置的format函数完成。

以下是您需要为您的示例做的事情:

>>> humidity = 99

>>> temp = 100

>>> print "[ {{ temperature: {0}, humidity: {1} }} ]".format(temp, humidity)

[ { temperature: 100, humidity: 99 } ]

注意:要从格式中转义{},请使用双括号{{}}。