将字典转换为字符串,然后再次返回字典

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字符串与字典互相转换

如何将afnetworking json字典转换为字符串,然后在IOS中将字符串转换为字典?

将字典转换为字节并再次返回python? [复制]

数据存储

如何将字符串字典转换为字典并拆分为单独的列