将双引号添加到python中的任何Int

将双引号添加到python中的任何Int,python,python-3.x,Python,Python 3.x,我有一个数据集,我想在任何数字中添加(sround)双引号”,例如2到“2”。我不知道怎么写这段代码。以下是数据集示例: {0: {"address": 0, "ctag": "TOP", "deps": defaultdict(<class "list">, {"ROOT": [6, 51]}), "feats": "", "head": "", "l

我有一个数据集,我想在任何
数字中添加(sround)双引号
,例如
2
“2”
。我不知道怎么写这段代码。以下是数据集示例:

 {0: {"address": 0,
             "ctag": "TOP",
             "deps": defaultdict(<class "list">, {"ROOT": [6, 51]}),
             "feats": "",
             "head": "",
             "lemma": "",
             "rel": "",
             "tag": "TOP",
             "word": ""},
         1: {"address": 1,
             "ctag": "Ne",
             "deps": defaultdict(<class "list">, {"NPOSTMOD": [2]}),
             "feats": "_",
             "head": 6,
             "lemma": "اشرف",
             "rel": "SBJ",
             "tag": "Ne",
             "word": "اشرف"},

我执行了以下代码,它更改为带斜杠的双引号:

import re
import json

f1 = open('../data/parse.txt', 'r')
file = f1.read()
k = re.findall(r'\b\d+\b', file)
j= json.dumps(json.dumps(k))
print(j)
结果如下:

[\"0\", \"0\", \"6\", \"51\", \"1\", \"1\", \"2\", \"6\", \"2\", \"2\", \"1\", \"3\", \"3\", \"4\", \"6\", \"4\", \"4\", \"3\", \"5\", \"5\", \"6\", \"6\", \"6\", \"3\", \"5\", \"7\", \"1\", \"0\", \"7\", \"7\"]
更新: 让我们总结一下:

  • 您只将数据作为所示格式的文件,而不是python对象
  • 由于q中提到的原因,这些文件对您不可用。 顺便说一句,您还没有解释为什么不能使用数据(或者在数据不可用的地方)
  • 这些文件由python生成(字符串包含文本defaultdict), 看起来像是通过管道将
    语句打印到文本文件
  • 第一个建议是,将生成这些文件的方式更改为允许轻松安全地往返到磁盘的方式
    json.dump/json.load
    是一种简单的方法。也可以使用
    pickle
    ,但这对版本更为敏感,并且会打开恶意代码的大门

    如何解决当前问题。

    根据您提供的信息,这将起作用,但很容易中断。您还应该知道数据来自何处,因为这不是解析数据的非常安全的方法

    import json
    from collections import defaultdict
    # read your file as string into file_data
    file_data = """{0: {"address": 0,
      "ctag": "TOP",
      "deps": {"ROOT": [6, 51]},
      "head": ""},
     1: defaultdict(<class "list">, {0: [1]})}"""
    python_object = eval(file_data)
    # now the above line errors out on py36
    # on py36 the repl for defafaultdict is: defaultdict(list, {0: [1]})
    # so that has to match your version of python to go through eval without errors...
    # the below line works on py36
    python_object = eval(file_data.replace('<class "list">', 'list'))
    print(json.dumps(python_object))
    
    如果这确实解决了您的问题。。。听起来你的问题是作为一名专业人士提出的,在这种情况下,请将你的工资或时间中的一些小时捐给你选择的好事业

    原始基于不完整图片的零件

    这是一个使用标准json库的示例,它确实生成了通常有效的json,但是人们可能会想知道json的使用者符合什么

    import json
    
    data = {0: {"address": 0,
                 "ctag": "TOP",
                 "deps": {"ROOT": [6, 51]},
                 "feats": "",
                 "head": ""}}
    
    print(json.dumps(data))
    
    with open('data.json', 'wt') as fj:
        json.dump(data, fj)
    
    输出

    '{"0": {"address": 0, "ctag": "TOP", "deps": {"ROOT": [6, 51]}, "head": ""}, "1": {"0": [1]}}'
    
    {"0": {"address": 0, "ctag": "TOP", "deps": {"ROOT": [6, 51]}, "feats": "", "head": ""}}
    

    如果标准json不适用于您的消费者,请告诉我们。

    双引号不仅仅是为了展示。它们代表字符串。将int转换为字符串就完成了。祝你好运@Paritossingh,它在一个数据集中,长度也不清楚,你能用代码描述一下吗?@Paritossingh,我说过我不知道如何开始我的代码。@Paritossingh python本身不会使用双引号,而是使用单引号。这更像是一个
    json.dumps
    之类的东西,但通常只适用于整数键,除非OP也将值转换为字符串。如果这是您期望的输出和您需要的答案,请点击绿色复选标记接受您的答案,并为将来的用户关闭此问题,谢谢。@Davewards,不幸的是,它与我的答案并不完全匹配,因为我希望它是这样的:
    “4”、“6”、“1”…
    ,但它给出了
    “1\”
    。我仍然需要帮助。这里提供的其他答案是否提供了有效的解决方案?不,它们都不适用于我的数据集,因为它具有复杂的结构,并且我无法手动更改它们的结构。因为数据集每天都在增长。如果您尝试
    k=re.sub(r'(\d+),r'\1',file)
    ,然后
    print(k)
    ,则不会产生预期的输出。不幸的是,对于我的数据集,它会给出此输出。`{0:{address':0,'ctag':'TOP',deps':defaultdict(,{ROOT':[6,51]}),`这是因为您的数据只是一个字符串,而不是结构化对象。谢谢您的帮助,但您的解决方案给了我这个错误,正如您所提到的,我尝试使用不同版本的python,但仍然有错误。
    File',第5行1:defaultdict(,{0:[1]})}
    重要的是,将文本文件中的
    defaultdict
    签名替换为python上的签名。只需制作一个简单的dict并打印它,就像这样
    dd=defaultdict(list);print(dd[0]。append(1))
    然后确保您输入的
    eval
    与打印的测试记录的开头相匹配,即
    替换
    ,以使其在py36上为我工作。如果您仍然有错误,则它隐藏在数据中,您需要进行清理。但只有您才能进行清理,因为您是唯一有错误的人数据…那么,当你将
    .replace
    匹配到某个匹配的东西时,你会得到什么呢?行
    python\u object=eval(file\u data.replace(“”,'list'))
    对我来说是有效的,所以要让它在你的计算机上正常工作,就取决于你做出正确的匹配。
    {"0": {"address": 0, "ctag": "TOP", "deps": {"ROOT": [6, 51]}, "feats": "", "head": ""}}