У меня есть JSON-файл со списком словарей, который я пытаюсь извлечь из каждого словаря по одному конкретному ключу и его значению и записать их в файл обратно в формат JSON.
В моем коде сейчас я перебираю словари и добавляю их вместе в файл json. Я вручную создаю формат JSON, но значения ключей записываются в виде строки. Я подозреваю, что это как-то связано с моей функцией dump (s). Но есть ли более эффективный способ прямого преобразования моих значений ключей из словарей python в словари json?
Вот мой текущий вывод:
{
"text: red" #returns a string
},
{
"text: yellow"
},
{
"text: blue"
}
Это мой ожидаемый результат:
{
"text": "red" #returns json formatted key-value pair
},
{
"text": "yellow"
},
{
"text": "blue"
}
Мой текущий код:
with open(join(dirname(__file__),'text.json')) as tone_json:
python_obj = json.load(tone_json) #read file object into string
my_list = python_obj["data"] #assign list name to string
for dictionary in my_list: #loop through dictionaries in list
for key,value in dictionary.items(): #loop through key pairs in dictionaries
if key == "text":
with open('comments.json', 'a') as f: #append each pair
f.write("{\n") . #write key pair objects as json formatted stream to json file
json.dump("{}: {}".format(key,value), f) #format key-values
f.write("\n},\n")
Мой текущий список словарей как "text.json":
{
"data": [
{
"text": "red",
"created_time": "2017-12-05",
"comment_count": 31,
"like_count": 43,
"id": "10155952999xxxxx"
},
{
"text": "yellow",
"created_time": "2017-09-09",
"comment_count": 4,
"like_count": 876,
"id": "10155952999xxxxxx"
},
{
"text": "blue",
"created_time": "2017-05-01",
"comment_count": 15,
"like_count": 6,
"id": "10155952999xxxxxx"
}
]
}