Я использовал что-то вроде этого:
switch number {
case .int(let n):
println("integer is \(n)")
case .float(let n):
println("float is \(n)")
}
Чтобы вставить json в вашу базу данных, не конвертируйте его в объект Python; просто сохраните строку как прочитанную из файла.
with open(peripheralsJsonFile).read() as f:
peripheralsInfo = f.read()
myquery = """INSERT INTO hw_info(hostname, peripheralsInfo) VALUES(%s,%s)"""
cursor.execute(myquery, (hostname, peripheralsInfo))
Если вы хотите использовать данные в своей программе позже, вы передадите строку из запроса SELECT через json.loads()
, чтобы сделать ее Python object.
EDIT
Два замечания здесь.
prefipheralsInfo = open(peripheralsJsonFile).read()
не закрывает файл после чтения, поэтому я использовал контекстный менеджер , который позаботится об этом за кулисами. Так как это MySql, вы пытаетесь установить поле как TextField и преобразовать JSON в строку и сохранить его. При извлечении вы можете использовать ast.literal_eval(fieldName)
.
Если вы используете PostgreSql, вы можете использовать JSONField в моделях.
ast.literal_eval
, когда у вас есть строка json? json.loads()
гораздо более уместен в этом случае
– shmee
13 July 2018 в 06:29