mysql查询的响应以一个顺序返回键,但使用python以不同的顺序保存

2024-05-19 14:43:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我用一段基本的python代码来查询MySQL数据库。 代码如下:

def get_data(self):
      sql = (
        'SELECT data_date, website_name, device, publisher,sum(bid) AS revenue, sum(impressions) AS impressions '
        'FROM header_bidder_data hb  '
        'INNER JOIN websites ON websites.website_id = hb.site_id  '
        'WHERE data_date= "2017-06-13" '
        'GROUP BY data_date, website_name, device, publisher '
      )
      try:
          data = self.db.query(sql)
          return data
      except Exception, e:
          logging.exception(e.message)
          return -1, e.message

问题是所选字段的顺序是我想要的,从data_data,website_name,...开始,但是,当数据存储结果时,它会以不同的方式重新排列其键,对我来说完全是随机的,我只能找出原因。 因此,在本次运行结束时,data将结果存储为以下形式:

{'publisher': u'google', 'campaign': u'249374', 'revenue': 4432, 'website_name': u'GGO', 'device': u'mobile', 'impressions': 20.0}

因此,不是将数据日期作为第一个键,而是突然将publisher作为第一个键,依此类推。 你知道如何在存储数据时保持相同的查询顺序,或者是什么导致了这个问题吗??泰铢

p.s.
我使用龙卷风作为我的网络服务器


Tags: 数据代码nameselfsqldatadatedevice
1条回答
网友
1楼 · 发布于 2024-05-19 14:43:17

这种行为是正常的,实际上在python中,术语被视为an unordered set of key: value pairs 如果你想要一个有序的iterable,你可以得到一个list,tuple。。。 您可以做的是设置mysql连接器模块不返回dic,或者通过键名选择值:data['publisher']

相关问题 更多 >