如何在Python列表中将带单引号的字符串元素转换为双引号

NewCoada

我正在为NLP任务预处理数据,需要以以下方式构造数据:

[tokenized_sentence]标签[tags_corresponding_to_tokens]

我有一个文本文件,该文件包含数千行这种格式的文件,其中两个列表之间用制表符分隔。这是一个例子

['EU', 'rejects', 'German', 'call', 'to', 'boycott', 'British', 'lamb', '.']    ['I-ORG', 'O', 'I-MISC', 'O', 'O', 'O', 'I-MISC', 'O', 'O']

我用来获取代码的那段代码是

with open('data.txt', 'w') as foo:
    for i,j in zip(range(len(text)),range(len(tags))):
        foo.write(str([item for item in text[i].split()]) + '\t' + str([tag for tag in tags[j]]) + '\n')

其中,文本是包含句子的列表(即,每个句子是一个字符串),标签标签的列表(即,与句子中每个单词/令牌相对应的标签是列表)。

我需要在保持这种结构的同时,使列表中的字符串元素具有双引号而不是单引号。预期的输出应如下所示

["EU", "rejects", "German", "call", "to", "boycott", "British", "lamb", "."]    ["I-ORG",  "O", "I-MISC", "O", "O", "O", "I-MISC", "O", "O"]

我尝试使用Python模块中的json.dump()json.dumps()json模块中获取,但没有获得所需的预期输出。相反,我将两个列表作为字符串。我最大的努力是手动添加这样的双引号(用于标签)

for i in range(len(tags)):
    for token in tags[i]:
        tkn = "\"%s\"" %token
        print(tkn)

这给出了输出

"I-ORG"
"O"
"I-MISC"
"O"
"O"
"O"
"I-MISC"
"O"
"O"
"I-PER"
"I-PER"
.
.
.

但是,这似乎效率太低。我看过这些相关的问题

但是他们没有直接解决这个问题。

我正在使用Python 3.8

AAAlex123

我很确定没有办法强迫python用双引号写字符串。默认为单引号。作为@deadshot评论,您可以替换'"您写整个字符串的文件后,或当你写的每一个字手动添加双引号。这篇文章的答案有很多不同的处理方法,最简单的方法是f'"{your_string_here}"'但是,您将需要分别编写每个字符串,因为编写列表会自动'在每个项目周围添加,这将是非常意大利面的。

find and replace ' with "将字符串写入文件后,只需执行此操作即可。

您甚至可以使用python做到这一点:

# after the string is written in 'data.txt'
with open('data.txt', "r") as f:
    text = f.read()

text = text.replace("'", '"')

with open('data.txt', "w") as f:
    text = f.write(text)

根据以下OP的评论进行编辑

代替上面的操作;这应该可以解决大多数问题,因为它会搜索', '仅希望出现在一个字符串末尾和下一个字符串开头的字符串

with open('data.txt', "r") as f:
    text = f.read()

# replace ' at the start of the list
text = text.replace("['", '["')

# replace ' at the end of the list
text = text.replace("']", '"]')

# replace ' at the item changes inside the list
text = text.replace("', '", '", "')

with open('data.txt', "w") as f:
    text = f.write(text)

(由OP编辑)根据我的最新评论进行的新编辑

运行此解决了我在注释中描述的问题,并返回了预期的解决方案。

with open('data.txt', "r") as f:
    text = f.read()

# replace ' at the start of the list
text = text.replace("['", '["')

# replace ' at the end of the list
text = text.replace("']", '"]')

# replace ' at the item changes inside the list
text = text.replace("', '", '", "')

text = text.replace("', ", '", ')

text = text.replace(", '", ', "')

with open('data.txt', "w") as f:
    text = f.write(text)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将字符串双引号转换为单引号

来自分类Dev

PHP将双引号字符串转换为单引号字符串

来自分类Dev

PHP:将单引号字符串转换为双引号

来自分类Dev

将环境变量从双引号字符串转换为单引号

来自分类Dev

如何从字符串中删除单引号或双引号?

来自分类Dev

如何在字符串 php 中使用更多单引号和双引号转换 CDATA xml?

来自分类Dev

如何在Python csv writer中将单引号替换为双引号?

来自分类Dev

如何在bash脚本中转义双引号字符串中的单引号?

来自分类Dev

如何将不含双引号的列表的字符串表示形式转换为实际列表?

来自分类Dev

如何使用双引号和单引号格式化python字符串

来自分类Dev

在python中将一串unicode字符串转换为没有单引号的普通字符串

来自分类Dev

在python中将一串unicode字符串转换为没有单引号的普通字符串

来自分类Dev

将带双引号和单引号的字符串从ASP传递到javascript函数

来自分类Dev

如何将带单引号的字符串传递给 in()

来自分类Dev

Python字符串文字-字符串中包括单引号和双引号

来自分类Dev

将逗号分隔的字符串转换为带单引号的字符串列表

来自分类Dev

用字符串内的双引号替换单引号

来自分类Dev

获取单引号或双引号之间的字符串

来自分类Dev

替换字符串中的单引号和双引号

来自分类Dev

字符串中的单引号和双引号的grep

来自分类Dev

双引号和单引号内的Grep字符串

来自分类Dev

保存包含单引号和双引号的字符串?

来自分类Dev

将列表表示为带双引号的字符串,而不是JSON的单引号

来自分类Dev

如何在包含必须使用双引号的JSON字符串的数据设置值周围添加单引号?

来自分类Dev

将包含双引号的字符串转换为 json

来自分类Dev

如何从字符串中删除双引号、单引号以及如何传入 ajax 调用

来自分类Dev

如何将列表中的每个元素转换为带引号的字符串

来自分类Dev

如何使用正则表达式匹配单引号或双引号中的字符串

来自分类Dev

Visual Studio-如何将JavaScript字符串从双引号重构为单引号

Related 相关文章

  1. 1

    将字符串双引号转换为单引号

  2. 2

    PHP将双引号字符串转换为单引号字符串

  3. 3

    PHP:将单引号字符串转换为双引号

  4. 4

    将环境变量从双引号字符串转换为单引号

  5. 5

    如何从字符串中删除单引号或双引号?

  6. 6

    如何在字符串 php 中使用更多单引号和双引号转换 CDATA xml?

  7. 7

    如何在Python csv writer中将单引号替换为双引号?

  8. 8

    如何在bash脚本中转义双引号字符串中的单引号?

  9. 9

    如何将不含双引号的列表的字符串表示形式转换为实际列表?

  10. 10

    如何使用双引号和单引号格式化python字符串

  11. 11

    在python中将一串unicode字符串转换为没有单引号的普通字符串

  12. 12

    在python中将一串unicode字符串转换为没有单引号的普通字符串

  13. 13

    将带双引号和单引号的字符串从ASP传递到javascript函数

  14. 14

    如何将带单引号的字符串传递给 in()

  15. 15

    Python字符串文字-字符串中包括单引号和双引号

  16. 16

    将逗号分隔的字符串转换为带单引号的字符串列表

  17. 17

    用字符串内的双引号替换单引号

  18. 18

    获取单引号或双引号之间的字符串

  19. 19

    替换字符串中的单引号和双引号

  20. 20

    字符串中的单引号和双引号的grep

  21. 21

    双引号和单引号内的Grep字符串

  22. 22

    保存包含单引号和双引号的字符串?

  23. 23

    将列表表示为带双引号的字符串,而不是JSON的单引号

  24. 24

    如何在包含必须使用双引号的JSON字符串的数据设置值周围添加单引号?

  25. 25

    将包含双引号的字符串转换为 json

  26. 26

    如何从字符串中删除双引号、单引号以及如何传入 ajax 调用

  27. 27

    如何将列表中的每个元素转换为带引号的字符串

  28. 28

    如何使用正则表达式匹配单引号或双引号中的字符串

  29. 29

    Visual Studio-如何将JavaScript字符串从双引号重构为单引号

热门标签

归档