I've a Database.csv file with one column and 3 rows, those are data exported from salesforce with simple-salesforce, I try to get the 'Name' Value from the OrderedDict cell data('Name', 'Demand').
Dataframe
Type__c
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234400000001ddAAA')])), ('Name', 'Demand')])
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234400000001ddAAA')])), ('Name', 'Demand')])
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/123430000004C93AAE')])), ('Name', 'Stand')])
with below code i read the csv file and for each row i am assigning the value that contains "OrderedDict([....) to name, and i want to print the "Name" field value,
import pandas as pd
from collections import OrderedDict
df = pd.read_csv('Database.csv')
for index, row in df.iterrows():
name = df._get_value(index, 'Type__c')
base=OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234500000001erAAA')])), ('Name', 'Private')])
print("\n",name['Name'])
print(base['Name'])
Results:
.
print("\n",name['Name'])
TypeError: string indices must be integers
when i change print("\n",name['Name']) to print("\n",name) to test the manual added OrderedDict, i can see it works
import pandas as pd
from collections import OrderedDict
df = pd.read_csv('Database.csv')
for index, row in df.iterrows():
name = df._get_value(index, 'Type__c')
test=OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234500000001erAAA')])), ('Name', 'Private')])
***print("\n",name)***
print(test['Name'])
Result:
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234400000001ddAAA')])), ('Name', 'Demand')])
Private
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234400000001ddAAA')])), ('Name', 'Demand')])
Private
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/123430000004C93AAE')])), ('Name', 'Stand')])
Private
I've a file with thousands of rows and there must be way to create a new column named "Name" and add the text data
at the End i want to achieve FROM
Type__c
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234400000001ddAAA')])), ('Name', 'Demand')])
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/1234400000001ddAAA')])), ('Name', 'Demand')])
OrderedDict([('attributes', OrderedDict([('type', 'Type__c'), ('url', '/services/data/v42.0/sobjects/Type__c/123430000004C93AAE')])), ('Name', 'Stand')])
TO
Name
Demand
Demand
Stand