Я хочу создать JSON:
[
{
measurement: "Equipment1",
fields: {
Pressure: 5.5
},
tags:{
MachineType:"type1"
},
timestamp: 1530717056.48
}
]
Написанный код:
import json
import time
from decimal import Decimal
count = 0
read_pressures = []
while (count < 100):
current_time=time.time()
array_of_pressures.append(dict(measurement="Equipment1", dict(pressure=5.5),dict(MachineType="Type1"),timestamp=time.time()))
time.sleep(0.01)
count = count + 1
print(data) #
read_pressures.append(data)
print ("printing all values")
print(json.dumps(read_pressures, ensure_ascii=False))
#print(read_pressures)
Коды, дающие ошибку "SyntaxError: non-keyword arg after keyword arg", но я не знаю, как я должен создавать словарь в словаре. Любая помощь ценится?
Спасибо
dict(measurement="Equipment1", dict(pressure=5.5),dict(MachineType="Type1"),timestamp=time.time()))
Здесь вам не хватает имен ключей ("поля" и "теги") для некоторых значений словаря.
dict(measurement="Equipment1", fields=dict(pressure=5.5), tags=dict(MachineType="Type1"), timestamp=time.time()))
Или вы можете написать это просто как
data = { "measurement": "Equipment1",
"fields": { "pressure": 5.5 },
"tags": { "MachineType": "Type1" },
"timestamp": time.time()
}
Как указывает tobias_k, вы также пытаетесь добавить свой dict к тому, что называется array_of_pressures
, которое не создано нигде в вашем коде, а не просто присваивает ваш dict data
.
data = dict(...)
array_of_pressures
? Что такоеdata
?dict(pressure=5.5)
- это другой ключ в родительскомdict
, вместо этого напишитеfields=dict(pressure=5.5)