python:元组在mysql插入查询中转换为列表

python:元组在mysql插入查询中转换为列表,python,mysql,Python,Mysql,我试图使用python将一个元组插入mysql表,但元组被转换为mysql表中的列表 settings: { 'AEROSPIKE_CONN_SETTINGS' : { 'hosts': [ ('aerospike.qgraph-vpc.io', 3000) ], 'policies': { 'timeout': 3000 } } } db = MySQLdb.connect(host='loc

我试图使用python将一个元组插入mysql表,但元组被转换为mysql表中的列表

settings: {
      'AEROSPIKE_CONN_SETTINGS' : {
        'hosts': [ ('aerospike.qgraph-vpc.io', 3000) ],
        'policies': {
           'timeout': 3000
        }
      }
    }
db = MySQLdb.connect(host='localhost', user='test', passwd='abcd', db='testdb')
cursor = db.cursor(MySQLdb.cursors.DictCursor)
insert_query = '''INSERT INTO test_table (`settings`) VALUES ('{}')'''.format(json.dumps(settings))
cursor.execute(insert_query)
cursor.connection.commit()
执行上述代码后,将以以下格式插入数据

settings:{ 
  "AEROSPIKE_CONN_SETTINGS": {
    "hosts": [["127.0.0.1", 3000]]
  }
}
settings:{ 
  "AEROSPIKE_CONN_SETTINGS": {
    "hosts": [("127.0.0.1", 3000)]
  } 
}
应采用以下格式

settings:{ 
  "AEROSPIKE_CONN_SETTINGS": {
    "hosts": [["127.0.0.1", 3000]]
  }
}
settings:{ 
  "AEROSPIKE_CONN_SETTINGS": {
    "hosts": [("127.0.0.1", 3000)]
  } 
}

有什么问题或如何以预期格式插入。我正在其他python组件中读取mysql表中的设置,以连接到aerospike。

JSON中没有元组


但是请注意,从Python代码的角度来看,列表和元组之间没有实际的区别。可以让它被转换。

JSON中没有元组这样的东西


但是请注意,从Python代码的角度来看,列表和元组之间没有实际的区别。可以将其转换。

请查看此问题和答案:此问题与Aerospike无关。您正在存储Aerospike配置的事实只是间接的。我建议去掉标签。如果Aerospike的python客户端拒绝使用列表而不是元组进行连接,则单独提出该问题。请查看此问题和答案:此问题与Aerospike无关。您正在存储Aerospike配置的事实只是间接的。我建议去掉标签。如果Aerospike的python客户端拒绝使用列表而不是元组进行连接,那么单独问这个问题。是的,这确实有区别,而连接Aerospike时元组是请求。在从mysql读取后,我刚刚在python代码中将列表转换回元组。是的,这确实会有所不同,而连接到aerospike则需要一个元组。在从mysql中读取后,我刚刚在python代码中将列表转换回元组。