繁体   English   中英

Python:从从数据库检索的字段中删除引号

[英]Python: remove quotes from field retrieved from DB

我与 Python 在一起,我正在查询 MySQL 数据库:

lists = db.execute("SELECT list, item, created_at FROM lists WHERE user_id = :user_id ORDER BY created_at ASC", user_id=session["user_id"])

«Item» 是一个文本字段,我在其中存储字符串数组。 这个查询的结果是:

[{'list': '1', 'item': '["a", "b"]', 'created_at': '2020-07-12 16:59:21'}]

如您所见, item值已被引用。 我怎样才能取消报价? 我不能使用 JSON 字段,因为我在 MySQL 3.22 中。

  • 使用ast.literal_evalstr转换回list
    • '["a", "b"]'strliteral_eval会将其转换回list['a', 'b']
  • 遍历列表,并更新每个字典中的'item'值。
from ast import literal_eval

for i, l in enumerate(lists):
    lists[i]['item'] = literal_eval(l['item'])

prints(lists)
[{'list': '1', 'item': ['a', 'b'], 'created_at': '2020-07-12 16:59:21'}]

使用.update而不是enumerate

for l in lists:
    l.update(item=literal_eval(l.get('item')))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM