[英]Adding new key-value pairs to JSON files using Python
我有一組包含一些信息的JSON文件。以下數據是鍵'BrowserInfo'的值。我想從下面提供的內容中提取以下信息Title
, Links
, Browser
, Platform
, CPUs
,將上述字段添加為JSON文件中的密鑰並提取其值並分配給這些密鑰。
標題:全球最佳網站| mywebsite.com
友情鏈接:225
瀏覽器:Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36 Ubuntu Chromium / 41.0.2272.76 Chrome / 41.0.2272.76 Safari / 537.36
平台:Linux x86_64
處理器:8
我已經編寫了一個python程序,以下降到目錄中並從JSON文件中提取“ BrowserInfo”值。
# Set the directory you want to start from
rootDir = '/home/space'
for dirName, subdirList, fileList in os.walk(rootDir):
print('Found directory: %s' % dirName)
for fname in fileList:
fname='space/'+fname
with open(fname, 'r+') as f:
json_data = json.load(f)
BrowserInfo = json_data['BrowserInfo']
print(BrowserInfo)
如何使用Python提取值並將新的鍵值對添加到JSON文件。
假設( 這似乎是一個很大的假設 ), BrowserInfo
包含換行符分隔的鍵,值對,並用': '
分隔,您可以使用以下命令提取鍵/值:
for line in BrowserInfo.splitlines():
k,v = line.split(': ', 1)
然后只需將它們插入字典中的任何位置即可,例如:
json_data['BrowserInfo'] = {}
for line in BrowserInfo.splitlines():
k,v = line.split(': ', 1)
json_data['BrowserInfo'][k] = v
快速演示演示
>>>import re, itertools
>>> BrowserInfo
'Title: Worlds best websit | mywebsite.com\nLinks: 225\nBrowser: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Ubuntu Chromium/41.0.2272.76 Chrome/41.0.2272.76 Safari/537.36\nPlatform: Linux x86_64\nCPUs: 8'
>>> re.split(':|\n', BrowserInfo)
['Title', ' Worlds best websit | mywebsite.com', 'Links', ' 225', 'Browser', ' Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Ubuntu Chromium/41.0.2272.76 Chrome/41.0.2272.76 Safari/537.36', 'Platform', ' Linux x86_64', 'CPUs', ' 8']
>>> s = re.split(':|\n', BrowserInfo)
>>> {pair[0].strip():pair[1].strip() for pair in itertools.izip(s[::2], s[1::2])}
{'Platform': 'Linux x86_64', 'Browser': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Ubuntu Chromium/41.0.2272.76 Chrome/41.0.2272.76 Safari/537.36', 'CPUs': '8', 'Links': '225', 'Title': 'Worlds best websit | mywebsite.com'}
從而
json_data['BrowserInfo'] = {pair[0].strip():pair[1].strip() for pair in itertools.izip(s[::2], s[1::2])}
將是你的json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.