这是我拥有的数据格式:
('Domain Name,Start Date,End Date,Attributed To,Tagsrn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'Domain Name,Start Date,End Date,Attributed To,Tagsrn'
'domain.com,2011-01-01,Active,Company A SA,rn')
如何将上面的数据转换为一个漂亮的json对象列表?像这样:
[
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}
{'Domain Name': 'domain.com',
'Start Date': '2011-01-01',
'End Date': 'Active',
'Attributed To': 'Company A SA',
'Tags': 'None'}]
到目前为止,我已经尝试过json.dumps、json.loads甚至csv.dictreader,但我似乎无法理解,如果初学者质疑,我很抱歉
我的方法是从输入字符串创建pandas数据帧。然后可以很容易地将该数据帧转换为JSON字符串。创建数据帧需要以下代码:
from io import StringIO
import pandas as pd
# Create your data frame
input_tuple = ('Domain Name,Start Date,End Date,Attributed To,Tagsrn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn'
'domain.com,2011-01-01,Active,Company A SA,rn')
# Create a continous string
input_str = ''.join(input_list)
# Create a dataframe from the string
df = pd.read_csv(StringIO(input_str), sep=',')
这个数据帧看起来是这样的:
Domain Name Start Date End Date Attributed To Tags
0 domain.com 2011-01-01 Active Company A SA NaN
1 domain.com 2011-01-01 Active Company A SA NaN
2 domain.com 2011-01-01 Active Company A SA NaN
3 domain.com 2011-01-01 Active Company A SA NaN
4 domain.com 2011-01-01 Active Company A SA NaN
然后可以使用函数to_json
创建所需的JSON字符串:
# Convert dataframe to json
result = df.to_json(orient='records')
最终结果如下:
[{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null},{"Domain Name":"domain.com","Start Date":"2011-01-01","End Date":"Active","Attributed To":"Company A SA","Tags":null}]