【问题标题】:How do you solve 'dict' object has no attribute 'write'?你如何解决'dict'对象没有属性'write'?
【发布时间】:2019-11-21 17:12:50
【问题描述】:

我以前没有使用过 JSON 文件,我想我可能只是对如何提取数据有点迷茫。这是我的代码:

# Loads data on women breastfeeding in America from the web # 
import urllib.request
import json 
with urllib.request.urlopen("https://chronicdata.cdc.gov/views/8hxn-cvik/rows.json?accessType=DOWNLOAD") as web_data:
    data = json.loads(web_data.read().decode())
    json.dump(data, web_data)

我正在尝试从互联网上提取数据,因为链接本身是网页视图,而我的计算机拒绝让我将其保存到我的计算机上。我希望能够操纵数据,但我遇到了几个问题。使用上面的代码,我得到以下错误:

---------------------------------------------------------------------------
UnsupportedOperation                      Traceback (most recent call last)
<ipython-input-31-7f3487bc83ea> in <module>()
      6     data = json.loads(web_data.read().decode())
      7     #write_data=data.write()
----> 8     json.dump(data, web_data)

~\OneDrive\Documents\Python stuff\Pythonstuff\lib\json\__init__.py in dump(obj, fp, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
    178     # a debuggability cost
    179     for chunk in iterable:
--> 180         fp.write(chunk)
    181 
    182 

UnsupportedOperation: write

我尝试了以下方法,认为它与 .read() 有关:

import urllib.request
import json 
with urllib.request.urlopen("https://chronicdata.cdc.gov/views/8hxn-cvik/rows.json?accessType=DOWNLOAD") as web_data:
    data = json.loads(web_data.read().decode())
    write_data=data.write()
    json.dump(write_data, web_data)

然后我得到以下错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-32-7ce187449c36> in <module>()
      5 with urllib.request.urlopen("https://chronicdata.cdc.gov/views/8hxn-cvik/rows.json?accessType=DOWNLOAD") as web_data:
      6     data = json.loads(web_data.read().decode())
----> 7     write_data=data.write()
      8     json.dump(write_data, web_data)

AttributeError: 'dict' object has no attribute 'write'

有人可以帮我指出正确的方向吗?我不知道如何打开这个文件并开始处理数据。我最终希望能够从那里将一些东西操作到数据框中。

【问题讨论】:

  • 我认为你不应该写信给web_data。如果您想在计算机上保存某些内容,您需要打开一个具有写入权限的新文件并将数据转储到那里。也许我只是不明白这里的问题。

标签: python json url


【解决方案1】:

如果我正确理解您的问题,您想将数据写入文件并将其保存在您的计算机中,对吗?然后你应该打开你要写入的文件(我在这里叫它rows.json):

import urllib.request
import json

with urllib.request.urlopen("https://chronicdata.cdc.gov/views/8hxn-cvik/rows.json?accessType=DOWNLOAD") as web_data:
    data = json.loads(web_data.read().decode())
    with open("rows.json", "w") as out_file:
        json.dump(data, out_file)

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2012-01-12
    • 2021-03-08
    相关资源
    最近更新 更多