如何处理MySQL列中需要varchar(255)的Python字符串列表?

2024-03-29 00:50:24 发布

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

(MySQL新手提醒)

我从一个API调用中收到一个字段price的值,它们几乎总是一个字符串

u'price': u'$49.99',

不过,有时有两个价格(前一个价格和当前价格),API将它们放在Python列表中:

u'price': [
  u'$9.99',
  u'$1,099.99'
],

当我的列price定义为varchar(255)时,当价格是一个列表时,插入失败。我不想把这样的价格分成两列。我知道我可以在插入之前使用Python将列表分解成一个字符串,但是MySQL中有没有一种方法同时允许一个字符串和一个列表呢?你知道吗


Tags: 方法字符串api列表定义mysql价格price
1条回答
网友
1楼 · 发布于 2024-03-29 00:50:24

看来你在试图解决两个不同的问题。首先,我认为您的模式是正确的,因为您将值存储为varchar而不是十进制(特别是因为您没有对它进行计算)。
第二,MySQL使用关系代数,因此值的“列表”概念没有意义。将每一行存储为自己不同的行(元组),并在运行时将它们重新连接在一起。你知道吗

但是,我认为您需要考虑以下方法:

创建具有以下属性的新表:

price_history(  
    price varchar(45),  
    date_changed datetime
)

这将使您能够正确处理从供应商处返回的API调用。我认为API是不确定的,因为有两种返回可能发生。返回应该(在我看来)总是以列表/数组的形式返回,以确保消费者总是能够处理响应而不需要撤销负担(但这超出了范围)

相关问题 更多 >