логический оператор для строки, содержащейся в Json - PullRequest
1 голос
/ 17 июня 2020

Если у меня есть Json данные, которые выглядят следующим образом:

import json

rawData= {
"Date": "2020-08-16T13:37:22.501743", "MeterReading": 199
}
jsonData = json.dumps(rawData)

print(jsonData)

В Python, как я могу создать логический оператор, чтобы узнать, содержит ли объект Json только строку Date и MeterReading? Если я использую это ...

mystring = "MeterReading Date"
for key in jsonData:
    if key in mystring:
        print('yes')

    else:
        print('no')

, это напечатает что-то нежелательное, как показано ниже. В идеале, если объект Json содержит Date и метку времени, а также MeterReading, чтобы содержать какое-то значение типа float или int. Любые советы очень ценятся ...

no
no
yes
yes
yes
yes
no
no
yes
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
no
yes
no
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
no
yes
no
no
no
no

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

Управляйте диктовкой напрямую. json.load или json.loads, если необходимо.

Затем используйте тот факт, что во многих случаях ключи dict ведут себя как наборы:

>>> rawData.keys() == {'Date', 'MeterReading'}
True
0 голосов
/ 17 июня 2020

Итерация строки выполняется посимвольно, а не по словам, разделенным пробелами. Сначала вам нужно разделить myString (или использовать сначала список):

mystring = "MeterReading Date"
mywords = mystring.split()
for key in jsonData:
    if key in mywords:
        print('yes')

    else:
        print('no')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...