Python 尝试将txt文件中的数据加载到请求变量中

Python 尝试将txt文件中的数据加载到请求变量中,python,json,Python,Json,我试图读取的文件中的数据看起来是 {“名称”:“主机1”,“类型”:“ipmask”,“子网”:[“0.0.0.0”,“255.255.255.255”],“动态映射”:null}, {“name”:“Host2”,“type”:“ipmask”,“subnet”:[“0.0.0.0”,“255.255.255.255”],“dynamic_-mapping”:null},我正在尝试读取此数据并将其插入变量中,以将其放入请求的post2。到目前为止,我尝试的内容包括:读取文件并将null替换为N

我试图读取的文件中的数据看起来是

{“名称”:“主机1”,“类型”:“ipmask”,“子网”:[“0.0.0.0”,“255.255.255.255”],“动态映射”:null},
{“name”:“Host2”,“type”:“ipmask”,“subnet”:[“0.0.0.0”,“255.255.255.255”],“dynamic_-mapping”:null},
我正在尝试读取此数据并将其插入变量中,以将其放入请求的
post2
。到目前为止,我尝试的内容包括:读取文件并将
null
替换为
None
,这样python就可以读取该文件并去除所有空白。我尝试过使用
json.loads()
json.loads()
json.dumps()
,但似乎没有任何效果。当我尝试使用
json.load()
时,出现以下错误

with open('data.txt', 'r') as file:
     dat2 = file.read()

post2 = {
        "id": 5,
        "method": "set",
        "params": [
            {
                "data": [
                     dat2
                    ],
                "url": "/config/url"
            },
            ]
        "session": sessionkey,
        "verbose": 1
        }

将数据放入dat2后,它将作为{data}而不是{data}插入post2。同样是的,我知道
file.read()
会将文件内容读入字符串,但我一直在尝试一切,因为我一直在努力成功使用json。我已经在我的代码的这一部分停留了很长时间了,我将非常感谢你的建议和想法。注意:我已经阅读了多篇PYTHON/JSON文章来阅读PYTHON,但没有任何效果,因此请不要将其标记为重复。

删除尾随撇号,并将词典放入文件的列表中,它应该如下所示:

File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 296, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 340, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 18 (char 145)
然后使用
json.loads
将其转换为列表:

[{"name": "Host1","type": "ipmask","subnet": ["0.0.0.0","255.255.255.255"],"dynamic_mapping": null}, {"name": "Host2","type": "ipmask","subnet": ["0.0.0.0","255.255.255.255"],"dynamic_mapping": null}]
这将使
post2

with open('data.txt', 'r') as file:
     dat2 = file.read()

import json
post2 = {"data": json.loads(dat2)}

希望这有帮助

我只是想…我会尝试通过说dat2=file.readlines()将dat2定义为一个列表。然后,在post2中,键“data”可以位于列表中。当我尝试使用
json.loads()
或任何其他json加载时,我会出错。因此,它会插入单引号,这就是我无法理解的
{'data':['{'name':'Host1','type':'ipmask','subnet':['0.0.0.0','255.255.255'],'dynamic_mapping':None},{'name':'Host2','type':'ipmask','subnet':['0.0.0.0','255.255.255'],'dynamic_mapping':None}']}
{'data': [{'name': 'Host1', 'type': 'ipmask', 'subnet': ['0.0.0.0', '255.255.255.255'], 'dynamic_mapping': None}, {'name': 'Host2', 'type': 'ipmask', 'subnet': ['0.0.0.0', '255.255.255.255'], 'dynamic_mapping': None}]}