【问题标题】:python - import data from url to pandaspython - 将数据从 url 导入到 pandas
【发布时间】:2018-04-29 18:57:00
【问题描述】:

您能帮我将来自这个 url 的数据导入到 pandas 数据帧中吗?是共同基金的时间序列,我需要进行一些统计分析和绘图。

http://tools.morningstar.it/api/rest.svc/timeseries_price/jbyiq3rhyf?currencyId=EURtype=Morningstar&frequency=daily&startDate=2008-04-01&priceType=&outputType=COMPACTJSON&id=F00000YU62]2]0]FOITA$$ALL&applyTrackRecordExtension=true

感谢任何提示以了解其工作原理

谢谢

【问题讨论】:

    标签: python pandas url dataframe import


    【解决方案1】:

    得到结果的答案:

    import requests
    import pandas as pd
    URL ='http://tools.morningstar.it/api/rest.svc/timeseries_price/jbyiq3rhyf?currencyId=EURtype=Morningstar&frequency=daily&startDate=2008-04-01&priceType=&outputType=COMPACTJSON&id=F00000YU62]2]0]FOITA$$ALL&applyTrackRecordExtension=true'
    r = requests.get(URL)
    # a= eval(r.content) Never user eval for online texts
    df = pd.DataFrame(r.json())
    

    回答以了解发生了什么

    在我的回答中,我使用了一个并不总是推荐的小技巧。 第一的, 我使用 request 从 URL 获取数据,然后使用 python eval 函数对其进行评估,您可以看到它是一个嵌套列表。 但使用 r.json() 是一个更好的主意强>

    pandas.DataFrame 是一种使用不同方法将数据转换为数据框的方法,例如您可以使用嵌套列表或 json 类数据(如字典)来创建数据框。

    但在大多数情况下,来自网络的结果可以使用 pd.read_csv 变成 pandas Dataframe,它使用 seplineterminator 解析数据。

    【讨论】:

    • 然后有人在那个 url 中放了一些邪恶的代码,你用eval 执行它,你就完蛋了。只是因为你不够小心而使用a = r.json()
    【解决方案2】:

    或者你可以只使用 pd.read_json(URL)

    import pandas as pd
    URL = "http://your.url.com/api"
    pd.read_json(URL)
    

    【讨论】:

      猜你喜欢
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 2021-12-22
      • 2014-03-12
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多