如何将表达式写入文件?

2024-05-29 06:02:08 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

import COVID19Py
import random

covid19 = COVID19Py.COVID19()

source = random.choice(['jhu', 'csbs', 'nyt'])
covid19 = COVID19Py.COVID19(data_source=source)
latest = covid19.getLatest()
f = open("CoronavirusDeathsT.txt", "a")
f.write(latest)
f.close()

我想使用f.write()将latest写入文本文档,但出现以下错误:

Traceback (most recent call last):
 File "C:\Users\AcerPC\OneDrive\Documents\Codes\CoronaVirusTest.py", line 9, in <module>
    f.write(latest)
TypeError: write() argument must be str, not dict

Tags: import密码sourcedatarandomlatestwritechoice
2条回答

正如错误消息所说,latest是一个dict,即,将一个或多个映射到相应的的数据结构:

{
   key1: value1,
   key2: value2
}

不能直接将dict写入文件,因为编写器不知道如何将这些键和值转换为文本(简单地说)

那么如何进行呢?这取决于latest的结构以及最终要对文件执行的操作。以下是众多选项中的两个:

  • 在其他应用程序中使用数据,例如用于可视化?导出为JSON:

    import json
    [...]
    json.dump(latest, f)
    
  • 在电子表格环境中使用它?导出为CSV:

    注意:如果dict是嵌套的,即包含其他dict as值,则此操作不起作用

    查看Python的csv.DictWriter类,很容易理解示例代码。您可以直接从数据中获取所需的字段名(电子表格列名),如下所示:

    fieldnames = list(latest.keys())
    

PS:您应该先通过简单的打印查看数据:

import json
print(json.dumps(latest, indent=4))

f.write只写字符串,所以需要将字典转换为字符串。试试这个

import json
f.write(json.dumps(latest))

相关问题 更多 >

    热门问题