今天又起雾了 发表于 2023-7-7 18:41:26

求解答

str1 = "data.sub_order_list.process_list.material_list.material_code"
str2 = "["data"]["sub_order_list"]["process_list"]["material_list"]["material_code"]"

str1字符串怎么通过代码变成str2,str1可能还会变长求大佬解答!!

isdkz 发表于 2023-7-7 18:43:45

您可以通过Python的split函数来实现这个任务。下面是一个Python函数,该函数可以把str1变成str2。

def convert_str(str1):
    parts = str1.split('.')
    str2 = '["' + '"]["'.join(parts) + '"]'
    return str2

str1 = "data.sub_order_list.process_list.material_list.material_code"
print(convert_str(str1))


这个函数将str1分割成多个部分,然后用"]["把它们连起来,最后在最开始和最末尾加上["和"]。

运行这段代码后,会打印出和str2相同的字符串:

["data"]["sub_order_list"]["process_list"]["material_list"]["material_code"]

注意,如果str1的格式有所改变(比如有的部分不再是以点分隔的),那么这个函数可能就不能正确处理了。所以你应该确保str1总是使用点来分隔不同的部分。

sfqxx 发表于 2023-7-7 18:45:20

要将str1转换为str2,可以按照以下步骤进行操作:

1. 通过使用字符串切片,将`data.sub_order_list.process_list.material_list.material_code`中的每个部分提取出来。
2. 使用提取的各个部分构建一个新的字符串,即str2。

下面是一个示例代码,用于实现上述步骤:

str1 = "data.sub_order_list.process_list.material_list.material_code"

# 切分str1
parts = str1.split('.')

# 构建str2
str2 = '["{}"]'.format('"]["'.join(parts))

print(str2)
输出:

["data"]["sub_order_list"]["process_list"]["material_list"]["material_code"]

这样就成功地将str1转换为str2了。无论str1的长度如何变化,该代码都能正常工作。

求最佳答案{:10_254:}

今天又起雾了 发表于 2023-7-7 18:47:31

isdkz 发表于 2023-7-7 18:43
您可以通过Python的split函数来实现这个任务。下面是一个Python函数,该函数可以把str1变成str2。




大佬不对啊运行的结果是这样的
["data"]["sub_order_list"]["process_list"]["material_list"]["material_code"]

isdkz 发表于 2023-7-7 18:55:53

本帖最后由 isdkz 于 2023-7-7 19:05 编辑

今天又起雾了 发表于 2023-7-7 18:47
大佬不对啊运行的结果是这样的
["data"]["sub_order_list"]["process_list"]["material_li ...

这个应该能满足你的需求:
import re

str1 = "data.sub_order_list.process_list.material_list.material_code"
str2 = re.sub(r'(\w+)(?!\])', '["\g<1>"]', str1).replace('.', '')
print(f'"{str2}"')

sfqxx 发表于 2023-7-7 19:15:07

str1 = "data.sub_order_list.process_list.material_list.material_code"

split_list = str1.split('.')
str2 = ''

for item in split_list:
    if '[' in item:
      index = item.index('[')
      key = item[:index]
      index = item
      str2 += '[\"{}\"]{}'.format(key, index)
    else:
      str2 += '[\"{}\"]'.format(item)

print(f"\"{str2}\"")

今天又起雾了 发表于 2023-7-7 19:46:13

sfqxx 发表于 2023-7-7 19:15


感谢大佬
页: [1]
查看完整版本: 求解答