Python: создать словарь внутри словаря для преобразования в JSON

1

Я хочу создать 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", но я не знаю, как я должен создавать словарь в словаре. Любая помощь ценится?

Спасибо

  • 1
    Что такое array_of_pressures ? Что такое data ?
  • 1
    dict(pressure=5.5) - это другой ключ в родительском dict , вместо этого напишите fields=dict(pressure=5.5)
Теги:
dictionary

1 ответ

4
Лучший ответ
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.

  • 1
    Кроме того, вместо добавления в несуществующий список, строка, вероятно, должна быть data = dict(...)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню