【发布时间】:2020-05-22 15:13:42
【问题描述】:
编辑 我不想将datetime转换为日期,还有其他几个不带引号的单词,我只需要将不带引号的单词转换为字符串。
我正在从数据库中检索一些数据并对其进行处理。我在 ast.literal eval 中遇到错误,因为它没有以正确的格式获取数据。比如看数据
'星链', datetime.datetime(2020, 5, 23, 0, 0), datetime.date(2020, 10, 23), '星链'
这正是我在没有日期时间单词引号的情况下得到它的方式。由于错误插入了日期时间对象。现在如何将 datetime.datetime(2020, 5, 23, 0, 0) 转换为字符串。最终我需要将所有这些逗号分隔的单词转换为一个列表。但我不能用 (,) 拆分,因为有些句子由 (,) 逗号组成 看代码
所以以前的元数据将是 'Starlink', datetime.datetime(2020, 5, 23, 0, 0), datetime.date(2020, 10, 23), 'starlink' 作为数据库中的一行
previous_meta_data = previous_meta_data.lstrip(' ')
previous_meta_data = previous_meta_data.rstrip(' ')
#previous_meta_data = previous_meta_data[1:-1]
#print(previous_meta_data)
previous_meta_data = re.sub("'\s*([^']*?)\s*'", r"'\1'", previous_meta_data)
#previous_meta_data = previous_meta_data.replace('\\','')
#print(type(previous_meta_data))
import ast
import json
previous_meta_data =ast.literal_eval(previous_meta_data)
有人可以帮我解答吗?
【问题讨论】:
-
不,这并不重要,我只需要将任何不带引号的此类数据转换为字符串,例如 datetime.datetime(2020, 5, 23, 0, 0).strftime 应该是字符串 """ datetime .datetime(2020, 5, 23, 0, 0).strftime """ 我不想把它转换成日期@Ch3steR
-
repr(datetime.datetime(2020, 5, 23, 0, 0))给'datetime.datetime(2020, 5, 23, 0, 0)'这就是你要找的吗? -
@Ch3steR 正确,但 ast.literal 并未将其视为字符串。
-
@Pritish 您可以使用
str()将数据转换为字符串。data = 'Starlink', datetime.datetime(2020, 5, 23, 0, 0), datetime.date(2020, 10, 23), 'starlink'并使用:str(data) -
我已经这样做了,但它仍然不会将 datetime.datetime(2020, 5, 23, 0, 0) 单独视为字符串。 @DavidDr90
标签: python python-3.x