今天又起雾了 发表于 2023-7-7 18:44:05

字符串转换


【求助帖】请及时确认最佳答案,下次提问时可以得到更多关注,问题可以更快解决
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:44:06

import re

def convert_str(str1):
    str2 = re.sub(r'(\w+)(?!\])', '["\g<1>"]', str1)
    return str2

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

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

要将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:48:36

本帖最后由 学爬虫的先生 于 2023-7-7 18:51 编辑

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(str2)

今天又起雾了 发表于 2023-7-7 18:50:55

学爬虫的先生 发表于 2023-7-7 18:48
str1 = "data.sub_order_list.process_list.material_list.material_code"

split_list = st ...

["data"]["sub_order_list"]["process_list"]["material_list"]\"material_code\"   大佬你这个差一点 目前最好的回复 感谢您

今天又起雾了 发表于 2023-7-7 18:52:01

sfqxx 发表于 2023-7-7 18:45
要将str1转换为str2,可以按照以下步骤进行操作:

1. 通过使用字符串切片,将`data.sub_order_list

["data"]["sub_order_list"]["process_list"]["material_list"]["material_code"]
大佬不是这样的

学爬虫的先生 发表于 2023-7-7 18:59:53

本帖最后由 学爬虫的先生 于 2023-7-7 19:01 编辑

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}\"")


vscode输出结果:
"["data"]["sub_order_list"]["process_list"]["material_list"]["material_code"]"

isdkz 发表于 2023-7-7 19:02:02

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

import re

def convert_str(str1):
    str1 = str1.replace('.', '')
    str2 = re.sub(r'(\w+)(?!\])', '["\g<1>"]', str1)
    return str2

str1 = "data.sub_order_list.process_list.material_list.material_code"
print(f'"{convert_str(str1)}"')

yoga16s 发表于 2023-7-10 08:45:19

新手鱼友前来学习{:5_109:}
页: [1]
查看完整版本: 字符串转换