簡體   English   中英

無法訪問使用json.dumps(json.loads(input))加載的JSON

[英]Can't access JSON loaded with json.dumps(json.loads(input))

假設我有這樣的json數據。

{"id": {"$oid": "57dbv34346"}, "from": {"$oid": "57dbv34346sbgwe"}, "type": "int"}
{"id": {"$oid": "57dbv34345"}, "from": {"$oid": "57dbv34345sbgwe"}, "type": "int"}

我在python中編寫了這樣的腳本

import json
with open('klinks_buildson.json', 'r') as f:
    for line in f:
        distros_dict = json.dumps(json.loads(line), sort_keys=True, indent=4)
        print distros_dict['from']
        print "\n"

但這給了我一個錯誤:

print distros_dict['from']
TypeError: string indices must be integers, not str

我需要這兩行的數據。

您不需要加載行,可以加載文件(假設其有效的json); 像這樣:

with open('klinks_buildjson.json', 'r') as f:
   data = json.load(f)

現在data是一個列表,其中每個項目都是一個對象。 您可以遍歷它:

for row in data:
   print(row['from'])

要立即解決問題,刪除json.dumps它是用來將對象轉換為A S特林,這是不是你想要的這里。

distros_dict = json.loads(line)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM