Я пытаюсь использовать логику неэтилированного Python, чтобы определить, должен ли выполняться оператор if. Однако оператор if работает, даже если переменные равны «None».Python pymysql, если переменная равна None: логика не работает
for row in rows:
serialnum = row[0]
lat = str(row[1])
lng = str(row[2])
if lat is None:
print "none"
else:
print serialnum + " lat: " + lat + " long: " + lng
jsonfile.write(
' {\n'
' "name": "' + serialnum + '",\n'
' "url": "campaigndetails.php?serial=' + serialnum + '",\n'
' "lat": ' + lat + ',\n'
' "lng": ' + lng + '\n'
' },\n'
)
Значения lat, lng и serialnum извлекаются из запроса MySQL. Все правильно, но логика для оператора if позволяет записывать в файл, даже когда lat == Нет
.
Что мне не хватает?
Как примечание стороны, почему вы генерирующий JSON вручную, вместо того, чтобы просто создать Dict и используя 'json.dumps'? – abarnert
Это может быть невежество, но я использую запрос для создания файла для экземпляра OpenStreetMaps. Я нашел там, что «Нет» не дживит с JSON здесь. Я возьму ваш совет и займусь этим подходом. Благодарю. – xianbei
Если вы кодируете значение «Нет» с помощью JSON, вы получаете JSON «null», который должен работать отлично с другой стороны. И если это не так, вы можете преобразовать его в исходную структуру данных и 'json.dumps' в любом случае. Нет никакой причины писать настраиваемое форматирование строки JSON, если у вас нет сломанного клиента, который заботится о порядке или чем-то еще, что не является частью действительного JSON в первую очередь. – abarnert