Python 通过JSON文件中的dict列表循环
似乎无法理解为什么我的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
[
{"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'}