在Python中添加到JSON并转换为对象
我有一个JSON数组,如下所示在Python中添加到JSON并转换为对象,python,json,Python,Json,我有一个JSON数组,如下所示 [ "3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX", "35xfg4UnpEJeHDo55HNwJbr1V3G1ddCuVA" ] 我想以字符串(self.tx\u amount\u 5)的形式添加一个值,因此我得到一个类似以下内容的JSON对象: { "3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX" : 100000 "35xfg4UnpEJeHDo55HNwJbr1V3G1d
[
"3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX",
"35xfg4UnpEJeHDo55HNwJbr1V3G1ddCuVA"
]
我想以字符串(self.tx\u amount\u 5)的形式添加一个值,因此我得到一个类似以下内容的JSON对象:
{
"3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX" : 100000
"35xfg4UnpEJeHDo55HNwJbr1V3G1ddCuVA" : 100000
}
import json
s="""[
"3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX",
"35xfg4UnpEJeHDo55HNwJbr1V3G1ddCuVA"
]"""
d = {el: self.tx_amount_5 for el in json.loads(s)}
print(d)
生成第一个JSON数组的代码部分是:
r = requests.get('http://api.blockcypher.com/v1/btc/main/addrs/A/balance')
balance = r.json()['balance']
with open("Entries#x1.csv") as f,open("winningnumbers.csv") as nums:
nums = set(imap(str.rstrip, nums))
r = csv.reader(f)
results = defaultdict(list)
for row in r:
results[sum(n in nums for n in islice(row, 1, None))].append(row[0])
self.number_matched_0 = results[0]
self.number_matched_1 = results[1]
self.number_matched_2 = results[2]
self.number_matched_3 = results[3]
self.number_matched_4 = results[4]
self.number_matched_5 = results[5]
self.number_matched_5_json = json.dumps(self.number_matched_5, sort_keys = True, indent = 4)
print(self.number_matched_5_json)
if len(self.number_matched_3) == 0:
print('Nobody matched 3 numbers')
else:
self.tx_amount_3 = int((balance*0.001)/ len(self.number_matched_3))
if len(self.number_matched_4) == 0:
print('Nobody matched 4 numbers')
else:
self.tx_amount_4 = int((balance*0.1)/ len(self.number_matched_4))
if len(self.number_matched_5) == 0:
print('Nobody matched 3 numbers')
else:
self.tx_amount_5 = int((balance*0.4)/ len(self.number_matched_5))
如果我理解正确,您可以这样创建字典:
{
"3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX" : 100000
"35xfg4UnpEJeHDo55HNwJbr1V3G1ddCuVA" : 100000
}
import json
s="""[
"3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX",
"35xfg4UnpEJeHDo55HNwJbr1V3G1ddCuVA"
]"""
d = {el: self.tx_amount_5 for el in json.loads(s)}
print(d)
产生
{'3D3iAR9M4HDETajfD79gs9BM8qhMSq5izX': 100000,
'35xfg4UnpEJeHDo55HNwJbr1V3G1ddCuVA': 100000}
你能说明问题是什么吗?我基本上想把第一个JSON数组转换成第二个JSON对象。请注意,创建一个JSON,然后再次解析它,这太过分了。如果可以修改代码,请在json旁边创建字典。顺便说一句,代码在5个数字的错误消息中有剪切粘贴错误