【问题标题】:Problem uploading a graph from a pickle file从泡菜文件上传图表时出现问题
【发布时间】:2020-08-23 03:31:25
【问题描述】:

作为程序的一部分,我必须从 pickle 文件中读取图形,然后将其作为图形返回。我必须说我正在使用 OSMnx 和 networkx 来做到这一点。

我已经有了这个包含从 OSMnx 下载的图表的 pickle 文件。但是当我调用该函数时,它会引发错误。

代码:

import networkx
import osmnx as ox
import requests
import matplotlib.cm as cm
import matplotlib.colors as colors
import pickle
ox.config(use_cache=True, log_console=True)
ox.__version__


def load_graph(filename):
    """Uploads a graph from a pickle file and it returns it"""
    infile = open(filename, 'rb')
    G = pickle.load(infile)
    infile.close()
    return G


def main():
    ox.plot_graph(load_graph("graph1.pickle"))

main()

错误:

AttributeError: 'str' object has no attribute 'nodes'

我该怎么办?

【问题讨论】:

    标签: python graph networkx pickle osmnx


    【解决方案1】:

    您没有提供可重现的代码 sn-p(例如,我不知道您如何生成 graph1.pickle 文件或它包含的内容),但是这个类似的代码 sn-p 可以很好地用于酸洗:

    import osmnx as ox
    import pickle
    ox.config(use_cache=True, log_console=True)
    G = ox.graph_from_place('Piedmont, CA, USA', network_type='drive')
    pickle.dump(G, open('graph.pickle', 'wb'))
    G2 = pickle.load(open('graph.pickle', 'rb'))
    fig, ax = ox.plot_graph(G2)
    

    顺便说一句:作为图序列化酸洗的替代方案,您还可以使用 OSMnx 的内置 save_graphmlload_graphml functions

    【讨论】:

      猜你喜欢
      • 2018-11-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      • 2013-10-13
      • 1970-01-01
      • 2015-07-26
      相关资源
      最近更新 更多