Python 转储与将数据加载到JSON中

Python 转储与将数据加载到JSON中,python,json,string,dictionary,Python,Json,String,Dictionary,我观察到以下行为: railnet= '''{ "nodes": [ {"data": { "id": 1,"name":"BER" }}, {"data": { "id": 2,"name": "MUN"}}, {"data": { &quo

我观察到以下行为:

railnet= '''{
    "nodes": [
        {"data": { "id": 1,"name":"BER" }},
        {"data": { "id": 2,"name": "MUN"}},
        {"data": { "id": 3,"name": "FRA"}}
        ],
    "edges": [
        {"data": { "id": "BER - MUN", "source": "BER", "target": "MUN" }},
        {"data": { "id": "MUN - FRA", "source": "MUN", "target": "FRA" }},
        {"data": { "id": "FRA - BER", "source": "FRA", "target": "BER" }}
    ]
  }'''
railnetJSON = json.loads(railnet)
print(railnetJSON['nodes'])
铁路网是一根弦。到目前为止一切正常

但如果railnet是一个目录,那又是什么呢

    railnet= {
    "nodes": [
        {"data": { "id": 1,"name":"BER" }},
        {"data": { "id": 2,"name": "MUN"}},
        {"data": { "id": 3,"name": "FRA"}}
        ],
    "edges": [
        {"data": { "id": "BER - MUN", "source": "BER", "target": "MUN" }},
        {"data": { "id": "MUN - FRA", "source": "MUN", "target": "FRA" }},
        {"data": { "id": "FRA - BER", "source": "FRA", "target": "BER" }}
    ]
  }
print(type(railnet)) # ->dict
railnetJSON = json.dumps(railnet) # -> no error here
print(railnetJSON['nodes']) # -> error here
线路

railnetJSON = json.dumps(railnet)
工作 但最后一行给出:

TypeError: string indices must be integers
问题是为什么我可以将字典转储到带有转储的JSON中(没有错误),但是访问节点会引发错误。有一个变量作为string或dict传递给JSON时,正确的做法是什么

换句话说,如果您需要创建一个JSON对象,并将其传递给另一个接受JSON的函数,那么当您拥有一个字典时,该如何继续

谢谢


在读了和之后,似乎要做的就是转储dict。

json。dumps
获取一个对象(在本例中是dict)并将其转储为json格式的字符串。从那以后,它只是一根绳子。如果要引用其中的键,则需要
json.loads
将其加载回目录。

json.dumps()
将json转换为字符串,因此无法使用键访问

dumps()
将字典转换为json字符串