将字典转换为字符串,然后再次返回字典
Posted
技术标签:
【中文标题】将字典转换为字符串,然后再次返回字典【英文标题】:Converting a dictionary to string, then back to dictionary again 【发布时间】:2021-08-16 19:00:48 【问题描述】:在下面的代码中,我从 yfinance 获取了一些数据,然后将其放在文本文件中。为了将其放在文本文件中,我需要将其从字典转换为字符串。当我想读取该文件时,它是一个字符串,但是如果我正确理解了错误消息,我需要它是一个字典。如果有人知道如何解决这个问题,我将不胜感激,谢谢。
import finance as yf
x=yf.Ticker("AAPL")
xo=x.info
f = open("atest.txt", "w")
f.write(str(xo))
f.close()
f = open("atest.txt", "r")
info=(f.read())
f.close()
print(info['forwardPE'])
错误信息:
Traceback (most recent call last):
File "/Users/xox/Desktop/Learning/TextFile/U5.py", line 41, in <module>
print(info['forwardPE'])
TypeError: string indices must be integers
【问题讨论】:
你可以使用pickle和unpickle。 How can I use pickle to save a dict? 【参考方案1】:我认为对字符串进行 en/decode 对象的最常见方法是使用 JSON。 python中有一个标准的json模块。你要做的就是导入 json 并调用 json.dump 和 json.loads
【讨论】:
【参考方案2】:如果我理解您的问题,您应该查看 json 库,从文件加载 Json 的示例代码
import json
with open('file.txt', 'r') as f:
data = json.loads(f.read())
然后将其写入文件:
import json
data = "1": "ABC", "2": "DEF"
with open('file.txt', 'w') as f:
f.write(json.dumps(data))
【讨论】:
【参考方案3】:您可以为此目的使用 json.dump 和 json.loads。在保存之前,您可以使用 json.dump 将任何对象转换为字符串。加载时可以使用json.loads。
下面是伪代码
import json
str = json.dump(obj)
...
obj = json.loads(str)
...
【讨论】:
以上是关于将字典转换为字符串,然后再次返回字典的主要内容,如果未能解决你的问题,请参考以下文章
Python爬虫编程思想(78): JSON字符串与字典互相转换
Python爬虫编程思想(78): JSON字符串与字典互相转换