【问题标题】: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。
  • 你有什么,你在哪里卡住了?

标签: python json dictionary mysql-python pymysql


【解决方案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 你会得到相同的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2011-07-12
      • 2014-05-23
      • 2019-05-29
      相关资源
      最近更新 更多