Я хочу преобразовать список строк в список словарей - PullRequest
0 голосов
/ 09 марта 2020

Я сохранил данные твиттера в mysql дБ как json. Когда я получаю его обратно, он возвращает список строк вместо списка словарей. Я ищу способ превратить его в список словарей. В этом формате я получаю сохраненные данные обратно. "tweetdata" - это имя столбца в db

[{"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},}]

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Прежде всего, похоже, что вы указали неверный формат json. При условии, что у вас правильный формат json, вы можете использовать функцию json load для загрузки данных json и преобразования их в тип словаря. Вот фрагмент кода в python.

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)

Выше приведенный фрагмент кода напечатает их.

<class 'dict'>
('text', 'b  problem')
('len', 10)
('Date', 1583160242000)
('Source', 'Twitter for Android')
('Likes', 0)
('RTs', 0)
0 голосов
/ 09 марта 2020

Попробуйте:

если ваши данные в переменной 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, вы получите тот же результат.

...