我有这样的数据集。
@client.event
async def on_ready():
print("Ready when you are")
while True:
bop = input("")
for server in client.servers:
for channel in server.channels:
if channel.name == "general":
await client.send_message(channel, bop)
当我序列化它时,我的json文件每次看起来都不一样。因为'轨道'的顺序每次都在变化。 我在看'to_representation',但由于这个数据没有Key,我没能像我预期的那样实现它。
任何人都可以给出提示,以确保'曲目'始终保持相同的顺序。
修改 这是我到目前为止,
{
'album_name': 'Dear John',
'artist': 'Loney Dear',
'tracks': [
'Airport Surroundings',
'Everything Turns to You',
'I Was Only Going Out',
]
}
答案 0 :(得分:1)
您遇到的问题是数据库问题而不是序列化程序问题。 您从未告诉数据库如何对曲目进行排序,因此每次数据库都会以不同的顺序返回曲目。
在Track
模型(非序列化程序)中添加此Meta
类
class Track(models.Model):
...fields
class Meta:
ordering = ("pk",)
这将导致您的曲目始终按主键排序。 您可以按任何其他字段订购,也可以按多个字段订购
即ordering = ("music_type", "name")