Python 通过JSON文件中的dict列表循环

Python 通过JSON文件中的dict列表循环,python,json,Python,Json,似乎无法理解为什么我的json文件循环包含一个dict列表,将“[”和“]”符号识别为字符串。通常,循环只打印列表中的值 这是文件结构 [ {"merch_name": "amazon.com", "link": "http://amazon.com"}, {"merch_name": "ebay.com", "link": "http://eba

似乎无法理解为什么我的json文件循环包含一个dict列表,将“[”和“]”符号识别为字符串。通常,循环只打印列表中的值

这是文件结构

[
{"merch_name": "amazon.com", "link": "http://amazon.com"},
{"merch_name": "ebay.com", "link": "http://ebay.com"},
{"merch_name": "amazon.co.jp", "link": "http://amazon.co.jp"}
]
这是循环的代码

with open('velreiz9.json', 'r') as web_list:
    for merch in web_list:

        print(merch)
如您所见,调试器将“[”视为字符串

此处只有文件中的字符串,带有

您可以逐行迭代文件text——您还没有对python列表进行操作,只是对字符串进行操作

第一行在第一个
'['
之后的
\n
处结束。要将数据作为python对象进行迭代,需要解析json:

with open("f.txt", "w") as f:
  f.write("""[
{"merch_name": "amazon.com", "link": "http://amazon.com"},
{"merch_name": "ebay.com", "link": "http://ebay.com"},
{"merch_name": "amazon.co.jp", "link": "http://amazon.co.jp"}
]""")

import json
from pprint import pprint

with open("f.txt") as f:
    as_obj = json.load(f) # this loads the text into an python object to use
    pprint(as_obj)    
  
输出:

# formatting due to pprint
[{'link': 'http://amazon.com', 'merch_name': 'amazon.com'},
{'link': 'http://ebay.com', 'merch_name': 'ebay.com'},
{'link': 'http://amazon.co.jp', 'merch_name': 'amazon.co.jp'}]
输出:

{'merch_name': 'amazon.com', 'link': 'http://amazon.com'}
{'merch_name': 'ebay.com', 'link': 'http://ebay.com'}
{'merch_name': 'amazon.co.jp', 'link': 'http://amazon.co.jp'}
import json

with open("velreiz9.json",'r') as f:
    web_list = json.load(f)
    for merch in web_list:
        print(merch)
{'merch_name': 'amazon.com', 'link': 'http://amazon.com'}
{'merch_name': 'ebay.com', 'link': 'http://ebay.com'}
{'merch_name': 'amazon.co.jp', 'link': 'http://amazon.co.jp'}