我想将字符串列表转换为字典列表

Posted

技术标签:

【中文标题】我想将字符串列表转换为字典列表【英文标题】:I want to convert a list of strings to a list of dictionaries 【发布时间】:2020-06-21 04:24:39 【问题描述】:

我将 twitter 数据作为 json 存储到 mysql db。当我取回它时,它返回一个字符串列表而不是字典列表。我正在寻找一种方法将其转换为字典列表。这是我取回存储数据的格式。 “tweetdata”是数据库中的列名

["tweetdata":"[\"text\":\"b  problem\",\"len\":10,\"Date\":1583160242000,\"Source\":\"Twitter for 
android\",\"Likes\":0,\"RTs\":0,]"]

我希望它返回类似这样的内容作为字典列表,其中列名被剥离

[\"text\":\"b  problem\",\"len\":10,\"Date\":1583160242000,\"Source\":\"Twitter for 
Android\",\"Likes\":0,\"RTs\":0,]

【问题讨论】:

这看起来不像是有效的 JSON。 你有什么,你在哪里卡住了? 【参考方案1】:

首先,您似乎提供了错误的 json 格式。如果您有正确的 json 格式,那么您可以使用 json 加载函数来加载 json 数据并将其转换为字典类型。这是python中的sn-p代码。

import json
json_data = '["tweetdata":[\"text\":\"b  problem\",\"len\":10,\"Date\":1583160242000,\"Source\":\"Twitter for Android\",\"Likes\":0,\"RTs\":0]]'
parsed_json = json.loads(json_data)
parsed_dict = parsed_json[0]['tweetdata'][0]
print(type(parsed_dict))
for item in parsed_dict.items():
    print(item)

上面的代码 sn-p 将打印这些。

<class 'dict'>
('text', 'b  problem')
('len', 10)
('Date', 1583160242000)
('Source', 'Twitter for Android')
('Likes', 0)
('RTs', 0)

【讨论】:

【参考方案2】:

试试这个:

如果您的数据在tweetdata 变量中,那么tweetdata[0]["tweetdata"] 它会像这样返回:

[\"text\":\"b  problem\",\"len\":10,\"Date\":1583160242000,\"Source\":\"Twitter for Android\",\"Likes\":0,\"RTs\":0,]

其实你可以这样做:

data = ["tweetdata":"[\"text\":\"b  problem\",\"len\":10,\"Date\":1583160242000,\"Source\":\"Twitter for Android\",\"Likes\":0,\"RTs\":0,]"][0]["tweetdata"]

并打印 data 你会得到相同的结果。

【讨论】:

以上是关于我想将字符串列表转换为字典列表的主要内容,如果未能解决你的问题,请参考以下文章

将字符串列表转换为字典

python中 列表导入到字典 出现相同的键,如何将值相加

如何将字典列表转换为 Pyspark DataFrame

如何在Python中将字符串列表转换为字典列表[重复]

将 csv.DictReader 对象转换为字典列表?

Python - 列表与字典相互转换