[英]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_eval
将str
转换回list
'["a", "b"]'
是str
, literal_eval
会将其转换回list
, ['a', 'b']
。'item'
值。
enumerate
解决正确的列表索引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.