首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python替换简单数据字符串并将其拆分为两个单独的输出

如何使用Python替换简单数据字符串并将其拆分为两个单独的输出
EN

Stack Overflow用户
提问于 2022-11-11 08:42:21
回答 3查看 37关注 0票数 0

这是我正在处理的输入数据。

代码语言:javascript
复制
November (5th-26th)

我想要做的是从这个数据字符串中得到两个独立的输出。即{11月5日}和{11月26日}

目前,我使用这个python脚本来删除其中的未包含的字符。

代码语言:javascript
复制
Name = input_data['date'].replace("(", "").replace(")", "")

output = [{"Date": Name}]

并使用其他无代码形成工具(Zapier)来拆分数据,并使输出以{11月5日}和{11月26日}的形式出现。

我想知道,如果有一个单一的python代码,我可以使用在不使用其他格式化工具获得所需的输出。

谢谢

我还没有找到密码。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-11-11 08:48:39

你可以这样做,分两步:

代码语言:javascript
复制
string = "November (5th-26th)"
month, days = [x.strip('()') for x in string.split(' ')]
start, end = days.split('-')

output = {'date_range' : [f"{month} {start}", f"{month} {end}"]}
print(output)
代码语言:javascript
复制
{'date_range': ['November 5th', 'November 26th']}

第二个任务:类似的方法,将& (用前导和尾随空间)替换为例如,,然后再像以前一样分割数据。

代码语言:javascript
复制
string2 = "December 10th & 11th"
string2 = string2.replace(' & ', ',')
month, days = string2.split(' ')
start, end = days.split(',')

output = {'date_range' : [f"{month} {start}", f"{month} {end}"]}
print(output)
代码语言:javascript
复制
{'date_range': ['December 10th', 'December 11th']}
票数 2
EN

Stack Overflow用户

发布于 2022-11-11 08:45:53

一个简单的regex就能很好地处理这个问题。

代码语言:javascript
复制
import re

value = "November (5th-26th)"
month, date_from, date_to = re.match(r"(\w+)\s+\((.*)-(.*)\)", value).groups()
print([month, date_from, date_to])  # ['November', '5th', '26th']

result = [f"{month} {date_from}", f"{month} {date_to}"]
print(result)  # ['November 5th', 'November 26th']
票数 0
EN

Stack Overflow用户

发布于 2022-11-11 09:25:27

简单的令牌化和拆分应该可以做到这一点:

代码语言:javascript
复制
s = 'November (5th-26th)'
m, d = s.split()
for dt in d[1:-1].split('-'):
    print(f'{{{m} {dt}}}')

输出:

代码语言:javascript
复制
{November 5th}
{November 26th}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74399948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档